IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Centrer une fenêtre sur un écran


Sujet :

Delphi

  1. #1
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    403
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 403
    Points : 295
    Points
    295
    Par défaut Centrer une fenêtre sur un écran
    Bonsoir a tous ,
    pour centrer une fenêtre sur un écran j'utilise cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure centerizeform(f:TForm);
    begin
      f.Top:=(Screen.WorkAreaHeight-f.Height) div 2;
      if f.Top<0 then f.Top:=0;
      f.Left:=(Screen.WorkAreaWidth-f.Width) div 2;
      if f.Left<0 then f.Left:=0;
    end;
    lors de l'appel de la procédure dans l’événement OnCreate j’obtiens une erreur.
    j'ai vu la solution proposée sur la faq :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    procedure CenterWnd(const Wnd: HWND); 
    var 
      R: TRect; 
      SW, SH, W, H: Integer; 
    begin 
      SW := GetSystemMetrics(SM_CXSCREEN); 
      SH := GetSystemMetrics(SM_CYSCREEN); 
      GetWindowRect(Wnd, R); 
      W := R.Right - R.Left; 
      H := R.Bottom - R.Top; 
      R.Left := (SW - W) div 2; 
      if R.Left < 0 then R.Left := 0; 
      R.Top := (SH - H) div 2; 
      if R.Top < 0 then R.Top := 0; 
      MoveWindow(Wnd, R.Left, R.Top, W, H, True); 
    end;
    mais je ne sais comment et ou appelé cette procedure.

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Bonjour ! Voici le plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Left := (Screen.Width - Width) div 2;
      Top := (Screen.Height - Height) div 2;
    end;

  3. #3
    Membre actif Avatar de Basile le disciple
    Homme Profil pro
    étudiant Centrale Supélec
    Inscrit en
    Avril 2013
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : étudiant Centrale Supélec

    Informations forums :
    Inscription : Avril 2013
    Messages : 147
    Points : 279
    Points
    279
    Par défaut
    Bonjour à tous,

    Encore plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Position:=PoScreenCenter;
    end;

  4. #4
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    403
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 403
    Points : 295
    Points
    295
    Par défaut
    Merci Roland Chastain , Basile le disciple mais , j ai déjà testé les deux solutions mais ma fiche n'est pas centrée .

  5. #5
    Membre actif Avatar de Basile le disciple
    Homme Profil pro
    étudiant Centrale Supélec
    Inscrit en
    Avril 2013
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : étudiant Centrale Supélec

    Informations forums :
    Inscription : Avril 2013
    Messages : 147
    Points : 279
    Points
    279
    Par défaut
    Merci Roland Chastain , Basile le disciple mais , j ai déjà testé les deux solutions mais ma fiche n'est pas centrée
    Les deux solutions marchent quand la fiche s'affiche puisqu'elles se produisent dans le create.
    Vous voulez que la fiche soit centrée quand on la redimensionne, tout le temps ou seulement à l'affichage??

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 874
    Points : 11 362
    Points
    11 362
    Billets dans le blog
    6
    Par défaut
    Peut-être un appel dans le OnShow conviendrait-il ?

    Sinon, pour le centrage, tout dépend au centre de quoi : écran, zone de travail (écran - barre des tâches) ?

  7. #7
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    403
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 403
    Points : 295
    Points
    295
    Par défaut
    Citation Envoyé par Basile le disciple Voir le message
    Les deux solutions marchent quand la fiche s'affiche puisqu'elles se produisent dans le create.
    Vous voulez que la fiche soit centrée quand on la redimensionne, tout le temps ou seulement à l'affichage??
    seulement a l'affichage.

  8. #8
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    403
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 403
    Points : 295
    Points
    295
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Peut-être un appel dans le OnShow conviendrait-il ?

    Sinon, pour le centrage, tout dépend au centre de quoi : écran, zone de travail (écran - barre des tâches) ?
    centrer a l'écran.

  9. #9
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    403
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 403
    Points : 295
    Points
    295
    Par défaut
    youpi j'ai trouvé la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Position := poOwnerFormCenter;
    Merci a vous tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. centrer une form sur l'écran
    Par diam's dans le forum Delphi
    Réponses: 10
    Dernier message: 31/07/2006, 15h52
  2. [Problème]Centrer une fenetre sur l'écran
    Par joker.benj dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 14/05/2006, 22h49
  3. Comment centrer une fenêtre sur l'écran?
    Par bygui dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 07/04/2006, 10h25
  4. Position d'une fenêtre sur l'écran (left, top)
    Par Daimonji dans le forum MFC
    Réponses: 9
    Dernier message: 18/12/2005, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo