Developpez.com - Delphi
X

Choisissez d'abord la catégorieensuite la rubrique :

Nono40.developpez.com
Le petit coin du web de Nono40
SOURCES TESTS DELPHI WIN32 AUTOMATISMES DELPHI .NET QUICK-REPORT
Retour à l'accueil
65 - POSITION D'UNE FENÊTRE

PRÉSENTATION : Obtenir la position d'une fenêtre même si celle-ci est réduite ou agrandie.
ZIP : Téléchargez le zip APERÇUS :

NOTES : L'exemple donné ici montre comment obtenir et modifier la position d'une fenêtre, même si celle-ci est agrandie ou réduite.
Il est ainsi possible de donner la position que doit avoir la fenêtre dans son état "normal" même si celle-ci est agrandie ou réduite.
De même dans le cas d'une fenêtre réduite ( hors fenêtre principale ), il est possible d'obtenir et de modifier la position de cette fenêtre réduite.

Cet exemple montre aussi la détection du déplacement d'une fenêtre à l'aide du message WM_MOVE.

CODE :
Unit Unit2;
//
// Sujet : Obtention de la position de la fenêtre.
//
// Par Nono40 : http://nono40.developpez.com   http://nono40.fr.st
//              mailTo:nono40@fr.st
//
// Le 14/03/2003
//

Interface

Uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

Type
  TForm2 = Class(TForm)
    Procedure FormMove(Var Mess:TMessage); Message WM_MOVE;
    Procedure FormCloseQuery(Sender: TObject; Var CanClose: Boolean);
  Private
    { Déclarations privées }
  Public
    { Déclarations publiques }
  End;

Var
  Form2: TForm2;

Implementation

{$R *.dfm}

Uses Unit1;

{ TForm2 }

Procedure TForm2.FormMove(Var Mess: TMessage);
Var Place:TWindowPlacement;
Begin
  // Obtention des positions actuelles
  FillChar(Place,SizeOf(Place),#0);
  Place.length := SizeOf(PLace);
  GetWindowPLacement(Handle,@Place);
  // Mise à jour des positions
  With Form1 Do
  Begin
    seNormaleTop  .Value := PLace.rcNormalPosition.Top;
    seNormaleLeft .Value := PLace.rcNormalPosition.Left;
    seAgrandieTop .Value := PLace.ptMaxPosition.Y;
    seAgrandieLeft.Value := PLace.ptMaxPosition.X;
    seReduiteTop  .Value := PLace.ptMinPosition.Y;
    seReduiteLeft .Value := PLace.ptMinPosition.X;
  End;
End;

Procedure TForm2.FormCloseQuery(Sender: TObject; Var CanClose: Boolean);
Begin
  // Blocage pour l'exemple de la fermeture de Form2
  CanClose:=False;
End;

end.

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Bruno Guérangé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -