Domanda

Se creo una nuova forma di Delphi, agganciare il suo evento OnResize, ed eseguire l'applicazione, OnResize viene generato prima viene visualizzata la finestra. Quello che non so è se questo accadrà sempre, per qualsiasi finestra.

(Per chiunque abbia familiarità con le API di Windows, ho rintracciato alla chiamata ShowWindow in TCustomForm.ShowingChanged (Forms.pas linea 5503 in Delphi 2007), che innesca apparentemente un WM_SIZE ... almeno, per un nuovo finestra senza altre proprietà impostate. io non l'ho visto documentato che ShowWindow spara sempre WM_SIZE, quindi non so se posso contare su questo o no.)

Posso contare su una TForm sempre sparare OnResize quando viene prima mostrato O ci sono circostanze (forse se la finestra è non ridimensionabile, forse se il? proprietà position ha certi valori, ecc) dove OnResize potrebbe non il fuoco prima che la finestra viene prima mostrato?

È stato utile?

Soluzione

No, questo evento non sempre scatta quando il display di forma, a seconda cose come BorderStyle. Ad esempio, si spara all'avvio per bsSingle, ma non per bsDialog.

E 'facile testare. Basta aggiungere un po 'di codice di registrazione all'evento OnResize del modulo principale, modificare il BorderStyle ed eseguire la vostra applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top