![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Макроподстановка
Sergi © (2002-10-29 18:04:00)Для примера: x:="Application.MessageBox" (строчка). Как вьіполнить Application.MessageBox (то, что в переменной)?
Дремучий (2002-11-01 18:12:00) [1]
> Sergi (31.10.02 14:56)
>
> > свой компонент
>
> да, я понимаю, что некрасиво, но если одновременно надо
> открьіть 3-4 таблицьі (для лукапа), то как иначе ?
ой трахался я с лукапами на тейблайх, ой по молодости...
используй TQuery (и локальный SQL)- никаких индексов не нужно, связок в дизайнере тоже (кстати запросы можешь тоже хранить в главной таблице)
на самом деле, кроме всего остального ТЕБЕ НУЖЕН БЫЛ TQuery
удачи!
Sergi (2002-11-01 15:41:00) [2]ну вобщем, все закрутилось !!! спасибо за ответьі-пригодилось.
Sergi (2002-10-31 14:56:00) [3]
> свой компонент
да, я понимаю, что некрасиво, но если одновременно надо открьіть 3-4 таблицьі (для лукапа), то как иначе ?
TTCustomDelphiMaster (2002-10-30 20:54:00) [4]
> В первой записи table_name: pays. Для нее - PaysDbf.
У вас что для каждой таблицы свой компонент?
Делайте лучше как говорит Дремучий © (30.10.02 16:11)
...
DinamicTable.DatabaseName := ExtractFilePath(Application.ExeName);
DinamicTable.Name := NameTable.FieldValues["DBNAME"];
...
Sergi (2002-10-30 17:44:00) [5]
> либо через интепретатор выполняешь код для каждой таблицы...
:) звучит как оно, но желательно популярнее.
Например tables (table_name,...) - список раб. таблиц. В первой записи table_name: pays. Для нее - PaysDbf. Конкретно, как будет вьіглядеть строчка, чтоб
PaysDbf.TableName:=ExtractFilePath(Application.ExeName)+"pays";
Енто и есть моя ситуация
Дремучий (2002-10-30 16:11:00) [6]Создаешь таблице в которую загоняешь свой список...
в то й же таблице создаешь нужное количество полей, куда можешь прописать названия таблиц, сроки их проверки, количество копий, код для интепретатора и т.п. Потом Бросаешь на форму два ТТаble - один для этой таблицы, другой для динамически загружаемых таблиц...
А дальше либо жестко пишешь цикл обработки, либо через интепретатор выполняешь код для каждой таблицы...
Оно?
:))
Sergi (2002-10-30 14:52:00) [7]Tonie - почти телепат ;]
Таблиц - всего 12-14:TDbf. Я думаю обращение по типу и будет единственньім вьіходом в ситуации. Просто задался вопросом, и очевидно ответ - отрицательньій.
Tonie (2002-10-30 14:39:00) [8]Если я телепат то у уважаемого Sergi есть модуль данных с кучей TableX:TTable и он непременно хочет задавать TableName для них из некоего списка ?
Может тогда цикл по Components с проверкой типа на TTable и соответственно с доступом к TableName спасет отца русской демократии ...
Sergi (2002-10-30 13:51:00) [9]Суть такая - есть список таблиц. по нему в цикле делается проверка наличности таблиц, их копия. Хочется еще по нему менять свойство TableName - у обьекта, открьівающего соответстенную таблицу, чтоб не прописьівать каждьій раз конкретньій обьект. Может есть другой вариант ? Спасибочки
Дремучий (2002-10-29 22:21:00) [10]
> TTCustomDelphiMaster © (29.10.02 21:31)
> В Delphi такого нет.
нет, попробовать написать можно... даже не мастеру... даже очень быстро... так сказать маленький спец-интерпретатор...
твой же пример...
if x="Application.MessageBox" then ...
Все зависит сколько таких функций нужно выполнять и каких именно...
:))
TTCustomDelphiMaster (2002-10-29 21:31:00) [11]
> Думаю что-то вроде должно бьіть и тут.
В Delphi такого нет.
down (2002-10-29 20:48:00) [12]Фокс - это интерпретатор, а делфи - компилятор, макроподстановок тут нет.
Sergi (2002-10-29 20:02:00) [13]2Юрий Федоров
За что деньги? На фоксе делается так: &x. Думаю что-то вроде должно бьіть и тут.
2CustomDelphiMaster
А если (мой вариант) x="PaysTable.Active". То-есть в переменной (у меня - в ячейке таблицьі) свойство. Надо свойство сделать True(False). Как тогда ? И, спасибо за ответ.
TTCustomDelphiMaster (2002-10-29 18:22:00) [14]if x="Application.MessageBox" then ...
Юрий Федоров (2002-10-29 18:18:00) [15]Такие пакеты денег стоят