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

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

Поиск компонентов по наименованию. [D7, WinXP]


kyn66 ©   (2006-03-06 13:32:00) 

Уважаемые мастера, у меня на форме есть некоторое количество Label, полученых в RunTime. Каким образом мне получить их Caption? Я делаю так:

 for i := 0 to 50 do
  if TLabel(FindComponent('GLabel_' + IntToStr(i + 1))) <> nil then
  St.Add(TLabel(FindComponent('GLabel' + IntToStr(i + 1))).Caption)
  else
    St.Add('0');

В данном коде мне приходится принудительно дважды использовать FindComponent. А как проверить, чтобы FindComponentиспользовался тока 1 раз, типа

 for i := 0 to 50 do
  with TLabel(FindComponent('GLabel_' + IntToStr(i + 1))) do
    begin
      if ??? <> nil then
       St.Add(Caption)
      else
       St.Add('0')
    end;


kyn66   (2006-03-06 14:33:00) [1]

Заработало! Спасибо !!!


Алхимик   (2006-03-06 13:59:00) [2]

У Compon: TComponent нету свойства Caption. Нужно преобразование типов, например:
if Compon is Tlabel then
  TLabel(Compon).Caption := ...


GrayFace   (2006-03-06 13:58:00) [3]

TLabel(Compon).Caption


kyn66   (2006-03-06 13:56:00) [4]

Я так пробывал, выдает ошибку, говорит Compon.Caption- нет такого.


MBo   (2006-03-06 13:35:00) [5]

var Compon: TComponent;
 Compon:=FindComponent...
 if Compon ...


Наверх

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