Come implementare l'evento OnCreate per un oggetto TFrame Delphi

TFrame è un contenitore per componenti; può essere nidificato all'interno di moduli o altri frame.

Una cornice, come un modulo, è un contenitore per altri componenti. I frame possono essere nidificati all'interno di moduli o altri frame e possono essere salvati nella palette Component per un facile riutilizzo.

OnCreate mancante

Una volta che inizi a usare i frame, noterai che non c'è OnCreate evento che è possibile utilizzare per inizializzare i frame.

In breve, il motivo per cui un frame non ha un evento OnCreate è che non è il momento giusto per attivare l'evento.

Tuttavia, entro sovrascrivendo il metodo Create puoi imitare l'evento OnCreate. Dopotutto, OnCreate for Forms viene attivato alla fine del costruttore Create - quindi la priorità di Create for Frames è come avere l'evento OnCreate.

Ecco il codice sorgente di un semplice frame che espone una proprietà pubblica e sovrascrive il costruttore Create:

 unità WebNavigatorUnit;

interfaccia

 

 usi

   Windows, Messaggi, SysUtils, Varianti, Classi,

   Grafica, controlli, moduli, finestre di dialogo, StdCtrls;

 

 genere

   TWebNavigatorFrame = classe(TFrame)

    urlEdit: TEdit;
  
privato

     furl: corda;

    
procedura setURL (const Valore: corda);

  
pubblico

     costruttore Crea (AOwner: TComponent); oltrepassare;

  
pubblicato

     proprietà URL: stringa letta ammainare Scrivi setURL;

  
fine;

implementazione$ R * .dfm

 

 costruttore TWebNavigatorFrame.Create (AOwner: TComponent);

inizio

   ereditato Crea (AOwner);

 
 // Codice "OnCreate"

   URL: = "http://delphi.about.com";

 fine;

procedura TWebNavigatorFrame.SetURL (const Valore: corda);

inizio

   fURL: = valore;

   urlEdit.Text: = Value;

 fine;

fine.

"WebNavigatorFrame" funge da avvio di un sito Web che ospita una modifica e un controllo pulsante. Nota: se non si è esperti di frame, assicurarsi di leggere i seguenti due articoli: sviluppo di componenti visivi mediante frame, sostituzione di schede con frame.