[R] Obtenir la position d'un contrôle

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
papami
Niveau 4
Niveau 4
Messages : 96
Enregistré le : lun. 19 nov. 2007 17:25
Status : Hors ligne

[R] Obtenir la position d'un contrôle

#1

Message par papami »

Bonjour

avec GuiGetCursorInfo on obtient bien l'id du contrôle survolé et la position du curseur de souris, mais je ne trouve pas de fonction permettant d'obtenir la position d'un contrôle (et ses dimensions), comme sait le faire Au3Info.exe ...

(et sans avoir à recalculer par rapport à la position mouvante de la GUI et aux positions/dimensions de création.)

possible ou non ?

Merci
Modifié en dernier par papami le sam. 19 nov. 2011 17:59, modifié 3 fois.
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [..] obtenir la position d'un contrôle

#2

Message par Ahbadiane »

Voir la fonction ControlGetPos()
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] obtenir la position d'un contrôle

#3

Message par zeshrek »

Hum... voyons voir... un peu de d'anglais me semble de rigueur...
Contrôle se dit control en anglais
Obtenir se dit get
Position se dit position
Et si tu cherchais ControlGetPos dans l'aide ?
Pour ce qui est de sa taille... il me semble que c'est toi qui l'a fixée non ? donc a la limite colle la dans une variable si tu dois la reutiliser plus tard...


Edit : grillé, ca m'apprendra a vouloir faire des phrases...
Si vis pacem para bellum
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] obtenir la position d'un contrôle

#4

Message par mikell »

Oui mais qu'elles sont belles ces phrases ... Image

Et quelle émotion quand on les découvre ces fonctions control, bien cachées qu'elles sont sous 'windows management' Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
papami
Niveau 4
Niveau 4
Messages : 96
Enregistré le : lun. 19 nov. 2007 17:25
Status : Hors ligne

Re: [R] obtenir la position d'un contrôle

#5

Message par papami »

ah ben oui, je suis zému :oops: !

bon, merci pour la leçon d'anglais.

mais étant donné mon niveau en Autoit, étant axé création GUI, c'est là que j'ai cherché un GuiCtrlGetPos ... hypothétique, sans élargir mon champ de vision !

donc merci à tous et en particulier à Ahbadiane pour sa sobriété efficace :wink:

à+
papami
Niveau 4
Niveau 4
Messages : 96
Enregistré le : lun. 19 nov. 2007 17:25
Status : Hors ligne

Re: [..] Obtenir la position d'un contrôle

#6

Message par papami »

Bonjour

je reviens à la charge :

-j'essaie l'exemple donné dans l'aide pour ControlGetPos ... en modifiant le nom du control qui est Edit chez moi et non Edit1 : Erreur car ne renvoie pas d'array.
-je corrige le titre en "Sans titre - Bloc-notes" qui est le titre de la fenêtre bloc-note chez moi : erreur, pas de retour d'array.
-j'essaie un ControlSetText ... ne fonctionne pas non plus

mon problème :
au départ on connaît évidemment(!) les dimensions d'un control (label, edit...)
mais avec $WS_SIZEBOX une fois la fenêtre redimensionnée comment trouver les nouvelles dimensions ?

si quelqu'un a un exemple fonctionnel de ControlGetPos je suis preneur

Merci
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Obtenir la position d'un contrôle

#7

Message par mikell »

papami a écrit :au départ on connaît évidemment(!) les dimensions d'un control (label, edit...)
J'en conclus donc que c'est un controle que tu as placé toi-même dans une gui, alors dans ce cas

Code : Tout sélectionner

ControlGetPos ( $magui, "", $moncontrole)
devrait suffire

Pour le redimensionnement, si la position du controle change alors tu es évidemment obligé de la récupérer de nouveau par un ControlGetPos (ou par un WinGetPos si tu as défini une position fixe du controle par rapport à un des bords de la gui avec un $GUI_DOCKtruc)
Tu peux surveiller ça avec un $GUI_EVENT_RESIZED dans la boucle While principale
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
papami
Niveau 4
Niveau 4
Messages : 96
Enregistré le : lun. 19 nov. 2007 17:25
Status : Hors ligne

Re: [..] Obtenir la position d'un contrôle

#8

Message par papami »

oui c'est ce que je fais, mais mon erreur venait de la présentation de la macro qui indique ControlGetPos ( "title", "text", controlID ) ... et avec un "titre" de fenêtre je n'arrivais à rien !

avec ton aide et ton exemple c'est bon ! (avec l'id de la GUI donc et non le titre de la fenêtre)

donc merci beaucoup :D
Répondre