Библиотека программиста

29.03.2024 - Получение индекса компонента в списке родителя

Мне необходимо найти индекс компонента в родительском списке дочерних элементов управления. Я попытался модифицировать prjexp.dll, но без успеха. У кого-нибудь есть идеи?




Есть такая функция. Ищет родителя заданного компонента, перебирает список и возвращает индекс искомого компонента. Функция прошла многочисленные тесты и вполне работоспособна.

Код

{ функция, возвращающая индекс искомого компонента в
списке родителя; возвращает -1 при отсутствии компонента }

function IndexInParent(vControl: TControl): integer;
var

ParentControl: TWinControl;
begin

{делаем "слепок" родителя через базовой класс на предмет доступности }
ParentControl := TForm(vControl.Parent);
if (ParentControl <> nil) then
begin
for Result := 0 to ParentControl.ControlCount - 1 do
begin
if (ParentControl.Controls[Result] = vControl) then Exit;
end;
end;
{ если мы уж попали в это место, то либо не найден компонент, либо компонент не имел родителя }
Result := -1;
end;

Опубликовано на сайте: http://www.coders-library.ru
Прямая ссылка: http://www.coders-library.ru/index.php?name=news&op=view&id=46