{ function to return index order of a component in its parent's
component collection; returns -1 if not found or no parent }
function IndexInParent(vControl: TControl): integer;
var
ParentControl: TWinControl;
begin
{we "cousin" cast to get at the protected Parent property in base class }
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;
{ if we make it here, then wasn't found, or didn't have parent}
Result := -1;
end;