Hallo DPler,
erstmal Danke für Eure Vorschläge, hab mir die Antworten alle durchgelesen. Mein Problem ist das nicht in jedem Editfeld das gleiche drinstehen kann. z.B. ein Feld beinhaltet Werte von ... bis, ein anderes 100, 135, 155, usw..., Das nächste wieder eine Int64. Kann man das ganze mit einem
Handle abfangen ??
Hab einen geschrieben, aber der bleibt immer stehen mit dem Fehler Listenindex überschreitet maximum (-1)
Delphi-Quellcode:
function FocusIsBtn(RootControl: TWinControl): boolean;
var
iHandle,
iCnt : integer;
conControl : TControl;
begin
result := false;
iHandle := GetFocus;
iCnt := -1;
while (iCnt < RootControl.ControlCount) do
begin
inc(iCnt);
if not (RootControl.Controls[iCnt] is TWinControl) then //Hier kommt der Fehler, Root Control liefert immer den Wert 1
continue;
if Integer((RootControl.Controls[iCnt] as TWinControl).Handle) = iHandle then
break;
end;
if not (RootControl.Controls[iCnt] is TWinControl) or
(Integer((RootControl.Controls[iCnt] as TWinControl).Handle) <> iHandle) then
exit;
conControl := RootControl.Controls[iCnt] as TWinControl;
if (conControl is TButton) then
result := true;
end;
Danke