Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315

    [delphi] Restituire Focus a oggetto su form

    Ciao a tutti,

    esiste un metodo per restituire il Focus ad un oggetto su Form1?

    mi spiego:

    ho una form con 4 oggetti Tedit e 1 Tbutton, nel momento in cui viene premuto il Button viene chiesta una conferma dati; nel caso in cui la risposta e' No vorrei restituire il Focus al campo Tedit che lo aveva nel momento precedente alla stessa pressione del button.

    per dare il focus utilizzo la proprieta setfocus, in questo caso non so come fare per sapere l'oggetto a cui applicare tale proprietà

    grazie
    fulvio

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Re: [delphi] Restituire Focus a oggetto su form

    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à
    Dovresti memorizzare il riferimento al controllo che ha il focus nel momento esatto in cui lo perde.

    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:
    codice:
    procedure TMyForm.edAllExit(Sender: TObject);
    begin
      FPreviousControl := TWinControl(Sender);
    end;
    L'evento può essere adoperato anche da controlli differenti da caselle di testo.

    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:
    codice:
    procedure TMyForm.GoButtonClick(Sender: TObject);
    begin
      if FPreviousControl <> nil then
        FPreviousControl.SetFocus;
    end;
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.