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

Вниз

FindComponent   Найти похожие ветки 

 
Pentium133 ©   (2004-12-16 16:22) [0]

Приветсвую!
Подскажите как мне найти компонент на форме по имени класса. Причем он может лежать не на самой форме, а на панели и пр.
Есть ли готовое решение или самому нужно писать такую функцию?


 
-=SS=- ©   (2004-12-16 18:16) [1]

FindControl();
FindNextControl()
Может быть пригодится FindChildControl()
Ну а если на форме находится несколько компонентов которые одного и того же класса ?


 
jack128 ©   (2004-12-16 18:44) [2]

2 -=SS=- а разве разговор о контрорлах идет??
2 Пентиум133  цикл по массиву Components. Если ты бросил компонент на палеь в дезин тайм, то владельцем компонента все равно становится форма.


 
Cosinus ©   (2004-12-16 18:54) [3]

Я думаю что то типа того...

for i:=1 to ComponentCount-1 do
 if (Components[i] is TSomeClass) then
   if (Components[i] as TSomeClass){for example}.Name="SomeClass1" then
     SomeAction;


 
Cosinus ©   (2004-12-16 18:55) [4]

Sorry, конечно не for i:=1 to ComponentCount-1 do, а for i:=0 to ComponentCount-1 do


 
-=SS=- ©   (2004-12-16 18:59) [5]


> jack128 ©   (16.12.04 18:44) [2]

Можно и так

Var I : Integer;
begin
For I := 0 to ComponentCount-1 do
 Memo1.Lines.Add(Components[i].ClassName);
....
end;


 
Pentium133 ©   (2004-12-17 18:33) [6]

Я вот как решил эту проблемму:

function FindСomp(const AClassName: string; const Source: TComponent): TComponent;
 var
   i: integer;
begin
 Result := nil;
 if UpperCase(Source.ClassName) = UpperCase(AClassName) then
     Result := Source
 else
   for i:= 0 to Source.ComponentCount - 1 do
     if Result = nil then
       Result := FindFQBcomp(AClassName, Source.Components[i])
     else
       Exit;
end;


 
Pentium133 ©   (2004-12-17 18:35) [7]

конечно же 11 строка:
Result := FindСomp(AClassName, Source.Components[i])


 
GuAV ©   (2004-12-17 23:23) [8]

Pentium133 ©   (17.12.04 18:33) [6]
  for i:= 0 to Source.ComponentCount - 1 do
    if Result = nil then
      Result := FindFQBcomp(AClassName, Source.Components[i])
    else
      Exit;

Странновато выглядит... кого вводишь в заблуждение ?



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

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

Наверх




Память: 0.48 MB
Время: 0.042 c
4-1098984080
mr_alexandr
2004-10-28 21:21
2005.01.02
Работа с портами в Делфи


1-1103185905
Mishenka
2004-12-16 11:31
2005.01.02
Какой список лучше выбрать для элементов одного типа?


14-1102884178
Юрий Зотов
2004-12-12 23:42
2005.01.02
Загадка


14-1102951077
Gero
2004-12-13 18:17
2005.01.02
Два винчестера


11-1084644178
Константин
2004-05-15 22:02
2005.01.02
Где достать "exptIntf.dcu" для Delphi? (или пришлите)