Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-4615
Igorek
2002-11-12 19:26
2002.12.02
Self = Іуда, if = ша...


1-4309
BJValentine
2002-11-21 11:25
2002.12.02
FindFirst, FindNext, FindClose


3-4190
Андрей Прокофьев
2002-11-13 13:44
2002.12.02
Дата в MSSQL и Delphi


14-4619
TovAV
2002-11-12 19:18
2002.12.02
D6


4-4692
PHN
2002-10-18 01:22
2002.12.02
GetWindowText и WinSight





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский