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.
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.
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
Merci jlsolimine,
malheureusement pour moi je suis sous Linux, je vais donc faire sans.
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 11.3 Alexandria 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 !
hello,
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
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.
hello,
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 :
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 :
Cela fonctionne, le seul problème c'est que la fenêtre de TOpenPictureDialog s'affiche un peu avant d'être déplacée.
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;
Ami calmant, J.P
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager