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

Lazarus Pascal Discussion :

Ouvrir une boîte de dialogue à une position définie [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : avril 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Ouvrir une boîte de dialogue à une position définie
    Bonjour à tous,
    je voudrais ouvrir une boîte de dialogue (TOpenPictureDialog) et qu'elle soit placée à gauche de l'écran.
    Je précise que je ne suis pas un programmeur chevronné et que je redécouvre Lazarus.
    Merci à qui voudra bien m'aider.

  2. #2
    Candidat au Club Avatar de jlsolimine
    Profil pro
    Inscrit en
    mars 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour, j'ai cherché mais je n'ai pas trouvé... Par contre, si tu programmes sous Windows, il semblerai que la position des dialogues systèmes (Load, Save,...) est sauvegardée dans le registre automatiquement par Windows. Donc, une solution serai:

    1) ton programme ouvre le TOpenPictureDialog (la position n'est pas modifiable par programmation)
    2) placer manuellement le TOpenPictureDialog à l'emplacement voulu
    3) cliquer sur Ok ou Annuler et... c'est tout !

    La prochaine fois que tu ré-ouvriras ton TOpenPictureDialog, il sera automatiquement placé au dernier endroit choisi. J'ai testé et cela fonctionne sur Win10.
    En espérant que cela fonctionne chez toi aussi. Bonne journée

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : avril 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci jlsolimine,
    malheureusement pour moi je suis sous Linux, je vais donc faire sans.

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

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

    Informations forums :
    Inscription : mars 2005
    Messages : 3 634
    Points : 10 418
    Points
    10 418
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Je me demande s'il n'est pas possible de récupérer le Handle du dialogue et lui envoyer un message fixant sa position.
    Je crois que ça fonctionnerait sous Windows mais ne sait pas si c'est multiplateforme.
    Delphi 5 Pro - Delphi 10.3.2 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    décembre 2008
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 2 342
    Points : 5 915
    Points
    5 915
    Par défaut
    hello,
    Citation Envoyé par tourlourou Voir le message
    Bonjour,
    Je me demande s'il n'est pas possible de récupérer le Handle du dialogue et lui envoyer un message fixant sa position.
    Je crois que ça fonctionnerait sous Windows mais ne sait pas si c'est multiplateforme.
    je ne crois pas que cela fonctionne sous linux, il n'y a pas le système de message. Par exemple pour utiliser setWindowPos il faut utiliser l'unité Windows. Et même si cela fonctionnait, il y a un gros problème sous widget cible Gtk2 : je n'arrive pas à positionner par exemple une fenêtre de dialogue du type messagedlgpos (avec position de la fenêtre). Elle est toujours centrée au milieu de la fenêtre de l'application ( sous Ubuntu 20.04 gnome Desktop). Par contre si j'utilise le widget cible Qt cela fonctionne.
    Pour notre ami Djiki26 cela risque d'être compliqué pour arriver à ce qu'il veut faire. Création d'une fenêtre de dialogue à partir d'une TForm ?
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : avril 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    merci de vos suggestions.
    J'ai bien essayer d'utiliser le handle mais effectivement je n'ai pas réussi à l'utiliser.
    Je peux déplacer et redimensionner ma boite de dialogue en mode terminal avec la commande 'wmctrl', mais cela ne semble pas fonctionner non plus quand je place cette commande dans mon code.

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    décembre 2008
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 2 342
    Points : 5 915
    Points
    5 915
    Par défaut
    hello,
    Citation Envoyé par djiki26 Voir le message
    Je peux déplacer et redimensionner ma boite de dialogue en mode terminal avec la commande 'wmctrl', mais cela ne semble pas fonctionner non plus quand je place cette commande dans mon code.
    Chez moi sous Ubuntu 20.04 Gnome Desktop, le wmctrl ne fonctionnait pas non plus pour 2 raisons :
    1 - J'avais la propriété Joindre les dialogues Modaux qui était activé si bien que la fenêtre de TOpenPictureDialog était liée à la fenêtre principal. Grâce à l'utilitaire Gnome Tweaks j'ai pu la désactiver :

    Nom : AjustementParamFen.png
Affichages : 35
Taille : 58,3 Ko


    2 - J'avais mis la commande wmctrl de repositionnement de la fenêtre de TOpenPictureDialog dans l'événement OnShow de cette fenêtre et là, cela ne marchait pas.

    J'ai rajouté un Timer de 100 ms activé dans l'événement OnShow. Le timer a cette procédure dans son événement OnTimer :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Timer1Timer(Sender: TObject);
    var s:String;
    begin
      RunCommand('/bin/wmctrl',['-r','Open existing','-e','0,0,200,-1,-1'],s);
      Timer1.Enabled := False;
    end;
    Cela fonctionne, le seul problème c'est que la fenêtre de TOpenPictureDialog s'affiche un peu avant d'être déplacée.




    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  8. #8
    Candidat au Club
    Homme Profil pro
    Inscrit en
    avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : avril 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Merci jurassic pork, tu as résolu mon problème.
    J'ai du un peu modifier le RunCommand car wmctrl n'est pas dans /bin chez moi.
    Maintenant ça marche nickel.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/12/2020, 23h28
  2. Recherche de la valeur d'un caractère à une position définie
    Par Mist-e-Fire dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 01/02/2013, 13h40
  3. Réponses: 3
    Dernier message: 04/08/2008, 09h55
  4. [newton] Déplacer un body à une position définie ?
    Par supergrey dans le forum Newton
    Réponses: 3
    Dernier message: 28/05/2008, 22h13
  5. Ouvrir une boîte de dialogue
    Par MayOL69bg dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/03/2007, 12h36

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