2010-10-07 6 views
2

Je souhaite appeler une fonction après la maximisation ou la restauration d'un formulaire. Je sais que je peux quelque chose comme ceci:Événement maximisé Delphi-form

procedure TfrmMain.WMSysCommand; 
begin 
    if (Msg.CmdType = SC_MAXIMIZE) OR (Msg.CmdType = SC_RESTORE) then 
    begin 
    Showmessage(IntToStr(frmMain.Height)); 
    end; 
    DefaultHandler(Msg) ; 
end; 

Mais le problème est: cet événement est déclenché avant que le formulaire est en fait redimensionnée - donc quand la forme est maximisée, je reçois la hauteur de la forme avant d'être maxmized (mais je veux la largeur du formulaire après qu'il a été maximisé).

Comment faire? Merci!

Répondre

3

le lien suivant peut-être vous aider:

http://www.tek-tips.com/viewthread.cfm?qid=809465&page=176

déclarer dans la section d'interface de cette unité

Procedure sizeMove (var msg: TWMSize); message WM_SIZE; 

et la mise en œuvre de cette procédure:

Procedure TfrmMain.sizeMove (var msg: TWMSize); 
begin 
inherited; 
if (msg.SizeType = SIZE_MAXIMIZED) OR (msg.SizeType = SIZE_RESTORED)then 
    resizeQlikViewReports(); 
end; 
+2

si vous afficher des liens vers des articles, pourriez-vous s'il vous plaît inclure quelques informations sur l'article soit derrière le lien, peut-être au moins le titre de l'article? –

+0

@Marjan: J'étais pressé, c'était la raison pour mettre seulement les liens ... la prochaine fois je serai plus explicite :) – RBA

Questions connexes