Главная страница
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.079 c
14-1102681639
Dmitriy O.
2004-12-10 15:27
2005.01.02
Сколько кому удавалось написать сразу правильно коду ?


3-1102310974
Fantasy
2004-12-06 08:29
2005.01.02
Help SQL


1-1103207093
Bless
2004-12-16 17:24
2005.01.02
Что вызывается вместо inherited в данном случае?


10-1071784665
Temik
2003-12-19 00:57
2005.01.02
DCOM: как запустить в сети?


14-1102650151
school
2004-12-10 06:42
2005.01.02
Delphi крякнутый