Ide Indy Delphi

Title: Get component index at runtime
Use IndexInParent function:
procedure TForm1.Button3Click(Sender: TObject);
begin
MessageBox(
Handle,
PChar('Index = '+IntToStr(IndexInParent(Button3))),
'Information',
MB_OK);
end;
function TForm1.IndexInParent(VControl: TControl): Integer;
var
ParentControl: TWinControl;
begin
ParentControl:=TForm(VControl.Parent);
if (ParentControl<>nil) then
for Result:=0 to ParentControl.ControlCount-1 do
if (ParentControl.Controls[Result]=VControl) then
Exit;
Result:=-1;
end;