Componentes - createwnd |
Top Previous Next |
|
=================================== CreateWnd ============================================
No exemplo abaixo há um problema. Não temos como acessar a propriedade Items enquando a janela não for criada (janela se refere ao WinControl).
type TFontCombo = class(TComboBox) public constructor Create (AOwner: TComponent); override; published property Items stored False; end;
implementation
constructor TFontCombo.Create (AOwner: TComponent); begin inherited Create (AOwner); Items.Assign (Screen.Fonts); <---------- Não funciona no Create. end;
Como fazer então? Existe um método chamado CreateWnd que é chamado depois que a janela já foi criada O código do componente acima ficaria:
type TFontCombo = class(TComboBox) public constructor Create (AOwner: TComponent); override; procedure CreateWnd; override; published property Items stored False; <---------- isto diz que não é necessário armazenar no DFM tambem end;
implementation
constructor TFontCombo.Create (AOwner: TComponent); begin inherited Create (AOwner); end;
procedure TFontCombo.CreateWnd; begin inherited CreateWnd; Items.Assign (Screen.Fonts); <--- Aqui sim! end; |