Вниз
Скачать: CL | DM;

Множества   Найти похожие ветки 

← →
GIL ©   (2003-06-06 11:26) [0]

как создать множество строкового типа, что-то вроде
s=["clWhite","clBlack"]
чтобы можно было потом использовать оператор in


← →
ladybird   (2003-06-06 11:29) [1]

никак


← →
han_malign ©   (2003-06-06 11:33) [2]

никак..., только поиском, TStringList - в самый раз, можно еще с хэш-функцией помудрить...


← →
kull ©   (2003-06-06 11:57) [3]

Например, вот так объявить и пользоваться ...

type
TMyColors = (myWhite, myBlack, ....);
var
MyColors: Set of TMyColors;
const
MyStrColors: array[TMyColors] of string = ("myWhite", "myBlack", ....);


А если поподробнее, зачем енто надо?


← →
GIL ©   (2003-06-06 12:07) [4]

Энто надо для проверки правильности введенного HTML-цвета


← →
Sandman25 ©   (2003-06-06 12:17) [5]

GIL © (06.06.03 12:07)

Тогда заведите функцию типа

function ValidColor(const Color: string):boolean;
const ValidColors: array[1..3] of string = ("clBlack","clWhite",clRed");
var
i:integer;
begin
Result := False;
for i := Low(ValidColors) to High(ValidColors) do
if ValidColors[i] = Color then
begin
Result := True;
exit;
end;
end;


← →
GIL ©   (2003-06-06 14:27) [6]

не это не подходит, там около 100 цветов и каждый раз так перебирать каждый раз - это много.


← →
Skier ©   (2003-06-06 14:30) [7]

>GIL © (06.06.03 14:27)
А что если использовать, например, сумму численных представлений
символов строки с названием цвета для идентификации оного.


← →
Palladin ©   (2003-06-06 14:35) [8]

удобней TStringList.Find


← →
GIL ©   (2003-06-06 14:51) [9]

первый способ больно мудр - уйдет много времени на преодразование.
а Stringlist не подходит, т.к. действие происходит в юните, где собраны все глобальные функции и процедуры.


← →
Skier ©   (2003-06-06 14:52) [10]

>GIL © (06.06.03 14:51)

> т.к. действие происходит в юните, где собраны все глобальные
> функции и процедуры.

И что ? Это как-то мешает ?


← →
GIL ©   (2003-06-06 14:55) [11]

а как в нем создать глобальную переменную типа TstringList, ведь ее потом надо прокреатить, а я не хочу ее креатить и заполнять при каждом вызове процедуры


← →
Skier ©   (2003-06-06 14:59) [12]

>GIL © (06.06.03 14:55)
initialization
ColorList := TStringList.Create;
finalization
FreeAndNil(ColorList)


← →
Sandman25 ©   (2003-06-06 14:59) [13]

Initialization
Finalization


← →
Palladin ©   (2003-06-06 15:01) [14]

ну да... это зеласложно...
в модуле после
implemantation
var
__ColorsDefs:TStringlist;

.....

initialization
begin
__ColorsDefs:=TStringList.Create;
заполнил
end;

finalization
__ColorDefs.Free;
end.


← →
GIL ©   (2003-06-06 15:02) [15]

а заполнять тоже после указания initialization?
это пишется
initialization
ColorList := TStringList.Create;
или
procedure initialization
ColorList := TStringList.Create;


← →
Skier ©   (2003-06-06 15:05) [16]

>GIL © (06.06.03 15:02)
-Заполнять после создания ColorList
- Это пишется как я написал


← →
GIL ©   (2003-06-06 15:05) [17]

всем спасибо за просвящение в еще одну бывшую тайну


← →
Palladin ©   (2003-06-06 15:06) [18]

это пишется в точности так как написал я


← →
kull ©   (2003-06-06 16:45) [19]

только если пользоваться TStringList, то неплохо бы сделать следующее при его создании.

ColorList := TStringList.Create;
ColorList.Sorted := True;
ColorList.Duplicates := dupIgnore;




Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.013 c
3-60019
Инна
2003-05-25 17:18
2003.06.19
PopupMenu над DBGrid


1-60182
Цыганов Д.
2003-06-03 16:00
2003.06.19
Создать окно поверх всех остальных но не просто


4-60456
LIK
2003-04-19 19:16
2003.06.19
TreeView


8-60280
madmike
2002-11-28 12:50
2003.06.19
Image save to jpeg


3-60084
YuraKiller
2003-05-28 21:32
2003.06.19
Как с клиента создать пользователя?




   Наверх