Code : Tout sélectionner
Global x, y, OldPosX, OldPosY, rc.s, Px, Py
rc.s = Chr(13)+Chr(10)
Procedure EditGadgetCursor(gadget)
SendMessage_(GadgetID(gadget),#EM_GETSEL,@Px,@Py)
x = SendMessage_(GadgetID(gadget),#EM_LINEFROMCHAR,Px,0)+1
y = Px-SendMessage_(GadgetID(gadget),#EM_LINEINDEX,SendMessage_(GadgetID(gadget),#EM_LINEFROMCHAR,Py,0),0)
EndProcedure
Procedure EditGadgetPos()
EditGadgetCursor(1)
If (x<>OldPosX Or y<>OldPosY) And y =>0
SetGadgetText(2,Str(x))
SetGadgetText(3,Str(y))
OldPosX = x : OldPosY = y
Beep_(6000,15)
EndIf
EndProcedure
Procedure Window()
OpenWindow(1,200,200,350,500,"Test Position Curseur" ,#PB_Window_SystemMenu)
CreateGadgetList(WindowID(1))
EditorGadget(1,3,3,300,400)
StringGadget(2,50,450,40,20,"")
StringGadget(3,180,450,40,20,"")
TextGadget(4,10,452,70,20,"Ligne:")
TextGadget(5,125,452,70,20,"Caract:")
SetGadgetFont(1,LoadFont(1,"Comic sans Ms",12))
SetGadgetFont(2,LoadFont(2,"Comic sans Ms",10, #PB_Font_Bold ))
SetGadgetFont(3,LoadFont(3,"Comic sans Ms",10, #PB_Font_Bold ))
SetGadgetFont(4,LoadFont(4,"Comic sans Ms",10, #PB_Font_Bold ))
SetGadgetFont(5,LoadFont(5,"Comic sans Ms",10, #PB_Font_Bold ))
SetTimer_(WindowID(1),1,100,0)
For n = 1 To 100
Texte.s+"Ligne numéro : "+RSet(Str(n),3,"0")+rc
Next n
SetGadgetText(1,Texte.s)
EndProcedure
Window()
SetActiveGadget(1)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow: End
Case #WM_TIMER
EditGadgetPos()
EndSelect
ForEver