![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Опять
Bakch © (2002-11-28 09:01:00)Доброе утро всем!
Определено множество имен таблиц:
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".
Как же покончить с этим инкомпетибл.
Victor_Cr (2002-11-28 11:06:00) [1]Черт, я голодный и тупой от этого. Извени первый абзац отпадает.
Victor_Cr (2002-11-28 10:59:00) [2]Перечисляемый тип для объектов (например TTable), это очень странная структура. Несовместимость очевидна множество состоящее из таблиц (т.е. объектов) не может сравниваться с строковыми переменными. Убери .TableName и получишь синтаксически правильную структуру.
Но я не могу понять зачем тебе это нужно. Для этого есть и другие методы, например присваивай своим таблицам уникальные идентификаторы, а их уже загоняй в множество (Инкремируешь свойство Tag у таблиц).
xenon (2002-11-28 09:38:00) [3]type
TNameTable = (Table1, Table2.....TableN);
TNameTableSet = set of TNameTable;
Это не множество имен таблиц, а множество целочисленных констант.
(хотя это не совсем так)
Выход - создай массив из названий таблиц. И в цикле с ним сравнивай. Или используй TStringList.
Sima (2002-11-28 09:35:00) [4]Ну дак а ты что хотел?
Тип TNameTableSet - это Byte (т.к. set), а TableName - это строка
ну и как приказываешь делфи это сравнивать?
А типа использовать массив строк, в которых имена хранятся не пробовал? можно объявить константу и в ней искать