Dobra zrobiłem ale trochę mi się to nie podoba (dobrze że chociaż działa). Dla potomnych (lub lepiej dla konstruktywnych krytyków):
var Fokus: string;
procedure TfrmMain.edtScaleEnter(Sender: TObject);
begin
Fokus := TControl(Sender).Name;
end;
procedure TfrmMain.edtProductNameEnter(Sender: TObject);
begin
Fokus := TControl(Sender).Name;
end;
procedure TfrmMain.swAutomaticModeClick(Sender: TObject);
begin
tmr1.Enabled := True;
end;
procedure TfrmMain.tmr1Timer(Sender: TObject); // interval 500 ms
begin
if Fokus = 'edtProductName' then
edtProductName.SetFocus;
if Fokus = 'edtScale' then
edtScale.SetFocus;
tmr1.Enabled := False;
end;