[R] GUICtrlCreateEdit ctrl a et retour à la ligne

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Nilak
Niveau 4
Niveau 4
Messages : 57
Enregistré le : mar. 25 mai 2010 21:29
Status : Hors ligne

[R] GUICtrlCreateEdit ctrl a et retour à la ligne

#1

Message 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. :D
Modifié en dernier par Nilak le sam. 08 janv. 2011 19:44, modifié 1 fois.
Nilak
Niveau 4
Niveau 4
Messages : 57
Enregistré le : mar. 25 mai 2010 21:29
Status : Hors ligne

Re: [..] GUICtrlCreateEdit ctrl a et retour à la ligne

#2

Message 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.
Nilak
Niveau 4
Niveau 4
Messages : 57
Enregistré le : mar. 25 mai 2010 21:29
Status : Hors ligne

Re: [..] GUICtrlCreateEdit ctrl a et retour à la ligne

#3

Message 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?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11676
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] GUICtrlCreateEdit ctrl a et retour à la ligne

#4

Message 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
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Nilak
Niveau 4
Niveau 4
Messages : 57
Enregistré le : mar. 25 mai 2010 21:29
Status : Hors ligne

Re: [..] GUICtrlCreateEdit ctrl a et retour à la ligne

#5

Message 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.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [R] GUICtrlCreateEdit ctrl a et retour à la ligne

#6

Message 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
 
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Répondre