Page 1 sur 1
[R] GUICtrlCreateEdit ctrl a et retour à la ligne
Posté : dim. 02 janv. 2011 22:43
par Nilak
Hello,
Je travaille sur un petit programme, assez simple, mais je bloque sur deux petits problèmes mineurs qui font que le travail n'est pas encore au point! En effet j'aimerai bien que dans la zone GUICtrlCreateEdit je puisse faire un ctrl + a pour sélectionner tout le texte qui s'y trouve (le ctrl + c ou v fonctionne...) et je me demandais si ce que j'ai fait est correct pour avoir un retour à la ligne automatique comme sous notepad! L'affichage donne le résultat voulu, mais est ce bien propre?
Code : Tout sélectionner
GUICtrlCreateEdit("",16,75,600,300,$ES_WANTRETURN + $WS_VSCROLL + $ES_AUTOVSCROLL )
Voilà, juste ces petites choses!
Merci par avance.

Re: [..] GUICtrlCreateEdit ctrl a et retour à la ligne
Posté : mar. 04 janv. 2011 09:41
par Nilak
Bonjour,
Personne sait comment permettre le control + A dans un controledit? /:*
Edit: Apres plusieurs recherches supplémentaires sur google j'ai trouvé ça:
"Selecting all text with Ctrl-A is not an inherent behavior of Edit controls (usually it's just a menu shortcut for "Select All"), but you can easily program it with HotKeySet and the GUIEdit UDFs in the beta version. Type some text into the edit box in the attached script and try it out."
Avec un fichier .au3 qui résout le problème... Mais je n'arrive pas à accéder au forum autoit... Et je ne peux donc pas télécharger le fichier.
Re: [..] GUICtrlCreateEdit ctrl a et retour à la ligne
Posté : sam. 08 janv. 2011 18:41
par Nilak
Re!
Depuis que le forum autoit.com est revenu, j'ai pu lire la solution du topic...
Code : Tout sélectionner
Func SelectAll()
_GUICtrlEdit_SetSel($zone,0,-1) ;See GUIEdit.au3 for info on the parameters to this function
EndFunc
Avec un hotkeyset. Par contre, il y a un probleme, si la GUI n'est pas active, le raccourci est défini est valide pour toutes les autres fenêtres.. Du coup il n'est plus possible d'utiliser la fonction ctrl + a ailleurs que dans la GUI...
j'ai donc rajouté ça dans la boucle while 1
Code : Tout sélectionner
$Focus = WinGetState("GUI","")
If $Focus = 15 Then
$rac = 1
If $rac = 1 Then
HotKeySet("^a","SelectAll")
EndIf
Else
$rac = 0
EndIf
Je pense que ça marche, mais le raccourci est toujours défini... Il y a un moyen d'annuler la définition d'un hotkeyset?
Re: [..] GUICtrlCreateEdit ctrl a et retour à la ligne
Posté : sam. 08 janv. 2011 19:36
par Tlem
Oui, vous devez le redéfinir mais sans la fonction affectée.
Voici l'exemple de la doc :
Code : Tout sélectionner
; capture and pass along a keypress
HotKeySet("{Esc}", "captureEsc")
Func captureEsc()
; ... can do stuff here
HotKeySet("{Esc}") ; <====== ICI
Send("{Esc}")
HotKeySet("{Esc}", "captureEsc")
EndFunc
Re: [..] GUICtrlCreateEdit ctrl a et retour à la ligne
Posté : sam. 08 janv. 2011 19:44
par Nilak
Ha oui.. C'était tout simple... Désolé pour ce message, je n'avais pas vraiment fait attention à la lecture de la fonction hotkeyset ><
Merci bien en tout cas. Ca fonctionne niquel.
Re: [R] GUICtrlCreateEdit ctrl a et retour à la ligne
Posté : dim. 11 déc. 2011 02:35
par matwachich
Bah j'ai plus simple
Code : Tout sélectionner
$Edit = GuiCtrlCreateEdit(...)
$hEdit = GuiCtrlGetHandle($Edit)
$Dummy = GuiCtrlCreateDummy()
$Accels[1][2] = [["^a",$Dummy]]
GuiSetAccelerators($Accels)
While 1
Switch GuiGetMsg()
...
Case $Dummy
_GUICtrlEdit_SetSel($hEdit, 0, -1)
...
EndSwitch
WEnd