Главная страница
    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.006 c
15-1206720548
Галинка
2008-03-28 19:09
2008.05.11
Можно ли скопировать файл...


6-1186310546
Lamer666
2007-08-05 14:42
2008.05.11
Счет траффика


3-1196861574
Леонид
2007-12-05 16:32
2008.05.11
Delphi и MS SQL


15-1206803292
guav
2008-03-29 18:08
2008.05.11
DMClient - посветка.


2-1207842186
smartleds
2008-04-10 19:43
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский