MDI: Da ist das immer nur in der äußersten Form zu finden.
Ansonsten sollte es eigentlich funktionieren.
Bei FMX gibt/gab es da aber mal ein Problemchen.
ABER, da es bei dir ein Leerstring ist und nicht knallt (Zugriffsverletzung bei Adresse 0),
wird die Komponente einfach keinen Namen haben.
z.B. bei DevExpress und Grids, wo der Fokus nicht
im Control, sondern in einem (meist/oft) namenlosen InnerControl liegt.
ActiveControl.Parent.Name
Delphi-Quellcode:
if key = vk_F2 then begin
ShowMessage( (Sender as TComponent).ClassName + ' ' + (Sender as TComponent).Name + ' - ' +
'(' + {FORM1}Self.ActiveControl.ClassName + ' ' + {FORM1}Self.ActiveControl.Name + ')' + ' - ' +
'[' + Screen.ActiveControl.ClassName + ' ' + Screen.ActiveControl.Name + ']');
end;