![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сослаться на компонент, зная его TAG ? [D7]
kyn66 © (2006-09-22 12:40:00)Есть функция, которая выполняет некое действие с компонентом:
procedure LookComp(Par : TWinControl; K : TControl);
Здесь первый параметр - родитель, второй - сам компонент, с которым будет что-то происходить. К примеру есть ряд компонентов TDBEdit. У каждого есть свой Tag. Как мне вставить в эту функцию компонент с тагом 1 или 2 или 3 и т.д.
Если через FindComponent, так там имя нужно указывать.
Fay (2006-09-22 13:22:00) [1]2 Сергей М. © (22.09.06 13:17) [9]
Я это условие просто не заметил 8)
Значит лишнее - этоas
Сергей М. (2006-09-22 13:17:00) [2]
> Fay © (22.09.06 13:02) [6]
Лишнее)
Достаточно первого фильтра в IF-условии.
Если компонент не прошел эту фильтрацию, то по барабану какой у него класс
Palladin (2006-09-22 13:15:00) [3]так и крути... догадаться то не трудно...
case (Controls[I] as TDbEdit).Tag of
...
end;
kyn66 (2006-09-22 13:03:00) [4]>> Василий Блаженный
пардон, когда писал ответ, вашего ешшо не было, он относился к [1]
Но здесь получается только через If, как-бы в Case прикрутить....
Fay (2006-09-22 13:02:00) [5]2 Сергей М. © (22.09.06 12:56) [5]
> Приведение типа здесь лишнее
НЕ лишнее, т.к. это буквальное решение.
Не удивлюсь, если у афтар использует Tag не только у TDBEdit.
Сергей М. (2006-09-22 12:56:00) [6]
> Василий Блаженный
> Controls[I] as TDbEdit
Приведение типа здесь лишнее, поскольку св-во Tag имеется у любоно наследника TComponent
Василий Блаженный (2006-09-22 12:52:00) [7]if ((Controls[I] is TDbEdit) and ((Controls[I ] as TDbEdit).Tag=нужное число))
kyn66 (2006-09-22 12:48:00) [8]Ну и что здесь связано с Tag-ом?
Василий Блаженный (2006-09-22 12:47:00) [9]if ((Controls[I] is TDbEdit) and ((Controls[I] as TDbEdit).Tag=нужное число)) then...
и по циклу него...
Dmitrij_K (2006-09-22 12:41:00) [10]
for j:=0 to ComponentCount-1 do
if Components[j] is TControl then
begin
{...}
end;