Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сослаться на компонент, зная его 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо