Comment détourner les actions par défaut quand je clique sur les bouton – et + de la barre de titre d’une fiche ?
Je veux que quand je clique sur – (minimiser)
- Au lieu de se réduire dans le barre de status
- Le programme s’affiche simplement plus petit
Et que quand je clique sur + (maximiser)
- Au lieu d’occuper tout l’écran
- Il retrouve sa taille d’origine
Seul OnMinimize possède un Evènement déclaré dans l’objet APPLICATION
Ce qui rend la première procédure plus facile :
- Dans FORM : OnCreate
- Redéfinir l’événement OnMinimise
Application.OnMinimize := MINI;
- Dans Procédures Privées
- Déclarer la fonction MINI
private { Déclarations privées } procedure MINI(Sender: TObject);
- Sous Implémentation
- Développer cette procédure
procedure TForm1.MINI(Sender: TObject); begin AfficherMINI.Execute; WindowState := wsNormal; end;
Comme l’événement “Minimise” n’est pas annulé, la fenêtre se réduit et passe la main, il faut donc la Restaurer en donnant au WindowState la valeur Normale
AffcicherMINI donne les dimensions de la Mini Fiche
OnMaximize ne possédant pas de procédure propre il faut la créer à partir des Messages Systèmes
- Dans la section Déclaration Procédures Privées
procedure _WM_GETMINMAXINFO(var mmInfo: TWMGETMINMAXINFO); message wm_GetMinMaxInfo;
- Dans la section Implémentation
procedure TForm1._WM_GETMINMAXINFO(var mmInfo: TWMGETMINMAXINFO); begin with mmInfo.minmaxinfo^ do begin ptmaxposition.x := left; ptmaxposition.y := top; if Tag > Width then ptmaxsize.x := Tag else ptmaxsize.x := Screen.Width div 2; ptmaxsize.y := Height; end; end;
Il suffit de donner à la variable minimaxinfo les coordonnées de la nouvelle fenêtre.