Главная страница
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.022 c
14-1103106994
}|{yk
2004-12-15 13:36
2005.01.02
От курения глупеют, доказали ученые


14-1102650897
Думкин
2004-12-10 06:54
2005.01.02
С днем рождения! 10 декабря


14-1102613591
Ломброзо
2004-12-09 20:33
2005.01.02
Быстро отключить/включить картинки в IE


3-1101976169
Sholoma
2004-12-02 11:29
2005.01.02
MySQL


3-1101984344
ksa2002
2004-12-02 13:45
2005.01.02
IBDataset