Главная страница
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.046 c
1-1103283641
V l a d i m i r
2004-12-17 14:40
2005.01.02
Обработка клавиш YESNOCANCEL в MessageBox


14-1102851004
Чеширский_Кот
2004-12-12 14:30
2005.01.02
Сегодня играют Arsenal - Chelsea


1-1103143375
Shnabs
2004-12-15 23:42
2005.01.02
Графика


1-1103143096
SMART_n
2004-12-15 23:38
2005.01.02
Событие на время


1-1103123850
mic_2000
2004-12-15 18:17
2005.01.02
Непонятки какие то, помогите разобраться