![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FindComponent
Pentium133 © (2004-12-16 16:22:00)Приветсвую!
Подскажите как мне найти компонент на форме по имени класса. Причем он может лежать не на самой форме, а на панели и пр.
Есть ли готовое решение или самому нужно писать такую функцию?
GuAV (2004-12-17 23:23:00) [1]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;
Странновато выглядит... кого вводишь в заблуждение ?
Pentium133 (2004-12-17 18:35:00) [2]конечно же 11 строка:
Result :=FindСomp(AClassName, Source.Components[i])
Pentium133 (2004-12-17 18:33:00) [3]Я вот как решил эту проблемму:
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;
-=SS=- (2004-12-16 18:59:00) [4]
> 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;
Cosinus (2004-12-16 18:55:00) [5]Sorry, конечно не
for i:=1 to ComponentCount-1 do, аfor i:=0 to ComponentCount-1 do
Cosinus (2004-12-16 18:54:00) [6]Я думаю что то типа того...
for i:=1 to ComponentCount-1 do
if (Components[i] is TSomeClass) then
if (Components[i] as TSomeClass){for example}.Name='SomeClass1' then
SomeAction;
jack128 (2004-12-16 18:44:00) [7]2 -=SS=- а разве разговор о контрорлах идет??
2 Пентиум133 цикл по массиву Components. Если ты бросил компонент на палеь в дезин тайм, то владельцем компонента все равно становится форма.
-=SS=- (2004-12-16 18:16:00) [8]FindControl();
FindNextControl()
Может быть пригодится FindChildControl()
Ну а если на форме находится несколько компонентов которые одного и того же класса ?