Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
ВнизМножества... Найти похожие ветки
← →
AndrewVolkov (2002-11-19 17:21) [0]procedure TForm1.Button1Click(Sender: TObject);
Type
TYN = (Yes, No);
Var YNSet: set of TYN;
begin
if (Edit1.Text in YNSet) then label1.Caption:="OK";
end;
При компиляции выкидывает, что [Error] Unit1.pas(33): Incompatible types: "TCaption" and "TYN".
Где ошибка???
Спасибо
← →
icWasya (2002-11-19 17:25) [1]А что такое
if (Edit1.Text in YNSet)
← →
MBo (2002-11-19 17:27) [2]Set - только для перечислимых типов, а не для строк
← →
Marcus (2002-11-19 17:28) [3]объявление TYN = (Yes, No); подразумевает, что Yes и No - числовые константы, а не текст
Если уж на то пошло, то
if (Edit1.Text[1] in ["Y", "N"]) then ...
← →
Reindeer Moss Eater (2002-11-19 17:29) [4]Элементами множества могут быть только простые типы. Строки - не являются таковыми
← →
AndrewVolkov (2002-11-19 17:36) [5]Это просто для быстрой реализации самой идеи. Идея в следующем:
записываю в реестр данные. Потом читаю. В этот момент одна из проверок состоит в том, что я проверяю есть ли считываемое значение в допустимых значениях. Например я запомнил настройкуб которая может принимать 4 разных значения [Up, Down, Normal, NoXX]. Я читаю реестр и хочу быстро проверить : то что я прочитал есть в данном множестве или нет
(Прочитанное Данное есть в Множестве) then
если бы был 1 или 2 варианта то легче помойму написать
(прочитанное даное = param1) or (прочитанное даное = param2) но если их много, хотелось бы как нибудь поаккуратнее это оформить. Вот для этого пытаюсь сделать через множество, но оно почему то не идет...
← →
AndrewVolkov (2002-11-19 17:41) [6]А как тогда правильней это оформить, если не через множество, т.к. char меня не устраивает, хочу слова чтоьбы были
← →
Marcus (2002-11-19 17:43) [7]List := TStringList.Create;
List.Add("Yes");
List.Add("No");
if (List.IndexOf(TextForCheck) >= 0) then label1.Caption:="OK";
← →
Reindeer Moss Eater (2002-11-19 17:45) [8]if Pos(Edit1Text,"_Yes_Да") > 0 then
← →
AndrewVolkov (2002-11-19 17:46) [9]> Marcus
Это жестоко. Вся идея была чтобы просто написать типа
if (data in Set) then
← →
AndrewVolkov (2002-11-19 17:50) [10]>Marcus
объявление TYN = (Yes, No); подразумевает, что Yes и No -
числовые константы, а не текст
Это как - числовые константы??? В смысле что он подразумевает вместо Йес и Но
← →
Smithson (2002-11-19 17:53) [11]Подразумевает 0 и 1.
← →
Marcus (2002-11-19 17:54) [12]> Это как - числовые константы??? В смысле что он подразумевает вместо Йес и Но
Если знакомы с языком Си, то это тоже самое, что enum
Ord(Yes) или integer(Yes) даст 0
Ord(No) даст 1
← →
han_malign (2002-11-19 17:58) [13]Причем максимальный размер Set - 8 байт, так что максимум 256 элементов (byte,char или перечисление).
← →
AndrewVolkov (2002-11-19 18:08) [14]Большое спасибо всем. Тады наверно со СтрингЛистом буду делать.
Жаль что множества какие то покоцанные...
← →
Poirot (2002-11-19 18:24) [15]
> han_malign ©
Ага!!! Точно 8 байт!!! 1 или 32 (32*8=256) простая математика!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c