Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.08;
Скачать: CL | DM;

Вниз

Как сослаться на компонент, зная его TAG ?   Найти похожие ветки 

 
kyn66 ©   (2006-09-22 12:40) [0]

Есть функция, которая выполняет некое действие с компонентом:

procedure LookComp(Par : TWinControl; K : TControl);


Здесь первый параметр - родитель, второй - сам компонент, с которым будет что-то происходить. К примеру есть ряд компонентов TDBEdit. У каждого есть свой Tag. Как мне вставить в эту функцию компонент с тагом 1 или 2 или 3 и т.д.
Если через FindComponent, так там имя нужно указывать.


 
Dmitrij_K   (2006-09-22 12:41) [1]

 for j:=0 to ComponentCount-1 do
   if Components[j] is TControl then
   begin
     {...}
   end;


 
Василий Блаженный   (2006-09-22 12:47) [2]

if ((Controls[I] is TDbEdit) and ((Controls[I] as TDbEdit).Tag=нужное число)) then...

и по циклу него...


 
kyn66 ©   (2006-09-22 12:48) [3]

Ну и что здесь связано с Tag-ом?


 
Василий Блаженный   (2006-09-22 12:52) [4]

if ((Controls[I] is TDbEdit) and ((Controls[I] as TDbEdit).Tag=нужное число))


 
Сергей М. ©   (2006-09-22 12:56) [5]


> Василий Блаженный



> Controls[I] as TDbEdit


Приведение типа здесь лишнее, поскольку св-во Tag имеется у любоно наследника TComponent


 
Fay ©   (2006-09-22 13:02) [6]

2 Сергей М. ©   (22.09.06 12:56) [5]
> Приведение типа здесь лишнее
НЕ лишнее, т.к. это буквальное решение.
Не удивлюсь, если у афтар использует Tag не только у TDBEdit.


 
kyn66 ©   (2006-09-22 13:03) [7]

>> Василий Блаженный
пардон, когда писал ответ, вашего ешшо не было, он относился к [1]
Но здесь получается только через If, как-бы в Case прикрутить....


 
Palladin ©   (2006-09-22 13:15) [8]

так и крути... догадаться то не трудно...

case (Controls[I] as TDbEdit).Tag of
...
end;


 
Сергей М. ©   (2006-09-22 13:17) [9]


> Fay ©   (22.09.06 13:02) [6]


Лишнее)

Достаточно первого фильтра в IF-условии.
Если компонент не прошел эту фильтрацию, то по барабану какой у него класс


 
Fay ©   (2006-09-22 13:22) [10]

2 Сергей М. ©   (22.09.06 13:17) [9]
Я это условие просто не заметил 8)
Значит лишнее - это as



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

Текущий архив: 2006.10.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.067 c
1-1157004806
Vladislavovich
2006-08-31 10:13
2006.10.08
Delphi und HTML


9-1136934366
GLMaterialLibrary1
2006-01-11 02:06
2006.10.08
GLScene Как сделать тоже самое только в поток?


3-1154986183
VitalikS
2006-08-08 01:29
2006.10.08
Commit по одной


15-1158217608
QuickFinder
2006-09-14 11:06
2006.10.08
Терминатор и батарейка для ноутбука


15-1158227399
xyz777
2006-09-14 13:49
2006.10.08
Пирадская копия Windows