Форум: "Основная";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
ВнизМножества Найти похожие ветки
← →
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 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c