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

Опять   Найти похожие ветки 

 
Bakch ©   (2002-11-28 09:01) [0]

Доброе утро всем!
Определено множество имен таблиц:
type
TNameTable = (Table1, Table2.....TableN);
TNameTableSet = set of TNameTable;
var
List_of_Name:TNameTableSet;
Делаю проверку
if not (MTable.TableName in List_of_Name) then
Получаю "Incompatible types WideStrings and TNameTable".
Как же покончить с этим инкомпетибл.


 
Sima   (2002-11-28 09:35) [1]

Ну дак а ты что хотел?
Тип TNameTableSet - это Byte (т.к. set), а TableName - это строка
ну и как приказываешь делфи это сравнивать?

А типа использовать массив строк, в которых имена хранятся не пробовал? можно объявить константу и в ней искать


 
xenon ©   (2002-11-28 09:38) [2]

type
TNameTable = (Table1, Table2.....TableN);
TNameTableSet = set of TNameTable;
Это не множество имен таблиц, а множество целочисленных констант.
(хотя это не совсем так)
Выход - создай массив из названий таблиц. И в цикле с ним сравнивай. Или используй TStringList.


 
Victor_Cr ©   (2002-11-28 10:59) [3]

Перечисляемый тип для объектов (например TTable), это очень странная структура. Несовместимость очевидна множество состоящее из таблиц (т.е. объектов) не может сравниваться с строковыми переменными. Убери .TableName и получишь синтаксически правильную структуру.
Но я не могу понять зачем тебе это нужно. Для этого есть и другие методы, например присваивай своим таблицам уникальные идентификаторы, а их уже загоняй в множество (Инкремируешь свойство Tag у таблиц).


 
Victor_Cr ©   (2002-11-28 11:06) [4]

Черт, я голодный и тупой от этого. Извени первый абзац отпадает.



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

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



Память: 0.45 MB
Время: 0.013 c
1-51781
LazorenkoX
2002-12-05 00:21
2002.12.16
F1


14-51917
Rinat
2002-11-25 11:05
2002.12.16
Добавление новой записи в базу.


3-51577
Yury
2002-11-27 11:19
2002.12.16
Connect to Exchange Server


6-51847
BackStabber
2002-10-16 18:19
2002.12.16
BroadCast


7-51978
Dim!S
2002-10-15 13:03
2002.12.16
Смена раскладки 2




   Наверх