[Ex] Saisie semi-automatique
Posté : ven. 03 juil. 2009 23:42
Salutations,
Ayant besoin de rajouter de la saisie semi-auto dans l'une de mes editbox, je me suis dis que j'allais chercher sur le net... ha ben, rien trouver.. vais demander de l'aide alors... ha ben, en faite je vais commencer par essayer de le faire moi meme !
Et au final, voici ce que ca donne :
Je n'ai pas trouvé de bug pour le moment, toute foi je ne suis pas bien sur que ce soit parfait.
Si quelqu'un a mieux a proposer, qui se manifeste
Ayant besoin de rajouter de la saisie semi-auto dans l'une de mes editbox, je me suis dis que j'allais chercher sur le net... ha ben, rien trouver.. vais demander de l'aide alors... ha ben, en faite je vais commencer par essayer de le faire moi meme !
Et au final, voici ce que ca donne :
Code : Tout sélectionner
#include <GuiEdit.au3>
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#Include <Array.au3>
$Form1 = GUICreate("Form1", 500, 500)
$Edit = GUICtrlCreateEdit("", 0, 0, 500, 500)
GUISetState(@SW_SHOW)
;~ $phrases = IniReadSection("phrases.ini", "prhases")
Dim $phrases[10][2]
$phrases[0][0] = 4
$phrases[1][1] = "Bonjour"
$phrases[2][1] = "Salut"
$phrases[3][1] = "Une longue phrase avec des espace et des petits oignons !"
$phrases[4][1] = "Bonbon"
;~ _ArrayUnique($phrases,2)
;~ _ArraySort($phrases)
$modif = 1
$lettre = ""
While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg = $GUI_EVENT_CLOSE
Exit
Case _GUICtrlEdit_GetModify($Edit) = "True"
If Not _IsPressed("08") Then
$pos = _GUICtrlEdit_GetSel($Edit)
If Not StringIsAlNum(StringRight(StringLeft(_GUICtrlEdit_GetText($Edit), $pos[0] - 1), 1)) Or $modif > 1 Then
$lettre = StringRight(StringLeft(_GUICtrlEdit_GetText($Edit), $pos[0]), $modif)
For $i = 1 To $phrases[0][0] + 1
If $i = $phrases[0][0] + 1 Then
If $modif > 1 Then
If StringRight(StringLeft(_GUICtrlEdit_GetText($Edit), $pos[0]), 1) = " " Then
_GUICtrlEdit_Undo($Edit)
$pos = _GUICtrlEdit_GetSel($Edit)
_GUICtrlEdit_SetSel($Edit, $pos[1], $pos[1])
_GUICtrlEdit_InsertText($Edit, " ", $pos[1])
EndIf
EndIf
$modif = 1
ExitLoop
EndIf
If $lettre = StringLeft($phrases[$i][1], $modif) Then
_GUICtrlEdit_InsertText($Edit, StringRight($phrases[$i][1], StringLen($phrases[$i][1]) - $modif), $pos[0])
_GUICtrlEdit_SetSel($Edit, $pos[0], $pos[0] + StringLen($phrases[$i][1]) - $modif)
$modif += 1
ExitLoop
EndIf
Next
EndIf
EndIf
_GUICtrlEdit_SetModify($Edit, "False")
EndSelect
WEnd
Si quelqu'un a mieux a proposer, qui se manifeste
