Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Вниз

Table   Найти похожие ветки 

 
Alex8   (2008-04-12 13:11) [0]

Уважаемые мастера!
Подскажите, пожалуйста, как
зная свойтво "Name" Таблицы (строка)
определить саму таблицу(указатель).

Что то вроде абсурдного (При pTb:TTable)
pTb := @pTb.Name

Пока что кроме прямолинейного просмотра
в цикле всех имеющихся в БД таблиц до встречи
с искомой ничего придумать не могу.
Спасибо.


 
Сергей М,   (2008-04-12 19:26) [1]

И зачем же тебе понадобился этот указатель ?


 
Loginov Dmitry ©   (2008-04-12 19:48) [2]

Что-то не вяжется:


> Подскажите, пожалуйста, как
> зная свойтво "Name" Таблицы (строка)
> определить саму таблицу(указатель).
>
> Что то вроде абсурдного (При pTb:TTable)
> pTb := @pTb.Name


с этим:


> Пока что кроме прямолинейного просмотра
> в цикле всех имеющихся в БД таблиц до встречи
> с искомой ничего придумать не могу.


Определись, что тебе нужно и задай вопрос по-человечески!


 
Alex8   (2008-04-12 20:49) [3]

Попробую конкретизировать.
 Пусть мне нужно в различных ситуациях
отфильтровать различные таблицы (pTb1, pTb2....pTbn)
 Я могу написать например так:

If pTb1.Name = "Name_1"Then (pTb:=pTb1; f:=f1)
If pTb2.Name = "Name_2"Then pTb:=pTb2; f:=f2)
......................................
If pTb99.Name = "Name_99"Then (pTb:=pTb99; f:=f99)

pTb.Filtered := f;
Это конечно плохо.

А можно составить вспомогательный файл
pTb1 - "Name_1" - f1
pTb2 - "Name_2" - f2
......................................
pTb99- "Name_99"- f:=f99

Но  pTb в файл не занесешь (я во всяком случае
не умею, т.к. это указатель). Поэтому в файле
остается 2 поля (Name и f).
 А далее в конкретной ситуации я залезаю в этот
файл, вытаскиваю соответствующие  Name и f,
по Name определяю (если мне подскажут, как это
сделать, и в программе пишу только
  pTb.Filtered := f;

Ну вот примерно так. Простите, что длинно излагал.


 
palva ©   (2008-04-12 20:54) [4]

Если известно, на какой форме (или DataModule) таблица лежит, то можно поискать там. А искомая таблица вообще лежит на чем нибудь?


 
Сергей М,   (2008-04-12 21:01) [5]

В пределах одного  того же компонента-владельца компоненты, которыми он владеет непосредственно, разыскиваются по имени методом FindComponent(), после чего при необходимости можно использовать приведение типа.

пример:

TTable(FindComponent("MySuperPuperTableComponentName")).Filter("FilterOn"MySuper PuperTableComponentName"")


 
Alex8   (2008-04-12 21:47) [6]

Спасибо. Но пока что-то не получилось.

После
   pTb := TTable(FindComponent("Tiz"));
    ShowMessage(pTb1.Name);          
ожидал плучить "Tiz", а получил (в окне Watch) Nil
Еще попробую разобраться детальней.
Может что-то напутал.


 
Alex8   (2008-04-12 22:04) [7]

В дополнение к предыдущему.

"Tiz" используется в моей форме, нр не является ее компонентом.
"Tiz" - компонент модуля данных.
Означает ли это, что в данном случае
FindComponent() не применим.
 Может нужно завести процедуру в упомянутом
модуле данных


 
Anatoly Podgoretsky ©   (2008-04-12 22:05) [8]

> Alex8  (12.04.2008 21:47:06)  [6]

Все нормально, в данном контейнере нет такого компонента.


 
Сергей М,   (2008-04-13 19:42) [9]


> Означает ли это, что в данном случае
> FindComponent() не применим


Нет, не означает.
Если компонент принадлежит контейнеру DataModule, то именно его метод FindComponent и следует вызывать, т.е. DataModule.FindComponent

Делать это можно в любом месте проекта, где виден идентификатор DataModule


 
Leonid Troyanovsky ©   (2008-04-13 19:56) [10]


> Сергей М,   (13.04.08 19:42) [9]

> Если компонент принадлежит контейнеру DataModule, то именно
> его метод FindComponent и следует вызывать, т.е. DataModule.
> FindComponent
>
> Делать это можно в любом месте проекта, где виден идентификатор
> DataModule

Виден в любом: Screen.DataModules.

--
Regards, LVT.



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

Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
15-1206965596
БарЛог
2008-03-31 16:13
2008.05.11
Имеет ли взрослый ребенок моральное право влезать в спор...


15-1206894166
garik
2008-03-30 20:22
2008.05.11
Зацените?


15-1206471007
Informer
2008-03-25 21:50
2008.05.11
А в чем смысл?


2-1208248370
DFT
2008-04-15 12:32
2008.05.11
const


2-1208157567
Костик
2008-04-14 11:19
2008.05.11
Как экзэшнику скопировать себя?....





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский