Dovresti memorizzare il riferimento al controllo che ha il focus nel momento esatto in cui lo perde.Originariamente inviato da 123delphi321
per dare il focus utilizzo la proprieta setfocus, in questo caso non so come fare per sapere l'oggetto a cui applicare tale proprietà
Supponi di aver aggiunto alla sezione private del tuo form un campo FPreviousControl di tipo TWinControl che contiene il riferimento all'ultimo controllo avente il focus.
Se sul form hai diverse caselle di testo TEdit, per ciascuna casella definisci lo stesso metodo di gestione dell'evento OnExit in modo simile al seguente:
L'evento può essere adoperato anche da controlli differenti da caselle di testo.codice:procedure TMyForm.edAllExit(Sender: TObject); begin FPreviousControl := TWinControl(Sender); end;
Quando la casella perde il focus e genera l'evento opportuno, il suo riferimento viene memorizzato nella variabile descritta precedentemente.
Supponi che avvenga la pressione del pulsante, è facile riportare il focus al controllo precedente scrivendo un metodo di gestione dell'evento OnClick simile a questo:
Ciao!codice:procedure TMyForm.GoButtonClick(Sender: TObject); begin if FPreviousControl <> nil then FPreviousControl.SetFocus; end;![]()

Rispondi quotando