Page 1 sur 1

Bonjour j'ai 2 question pour les pros de PB...

Publié : lun. 12/mai/2008 7:54
par bernard13
bonjour
j'ai 2 question :

1- dans un StringGadget , peux t'on placer le curseur ou'lon veux quand on mis un SetActiveGadget aprés pour donner le focus ?
ce que veux faire c'est que le focus place le curseur dans le StringGadget où il veux.

2- peuxt'on cacher une colonne d'une ListIconGadget quand on lance le programme et la faire reapparaitre si on clique sur un bouton ?

merci à tous

Publié : lun. 12/mai/2008 9:41
par lionel_om
1)

Code : Tout sélectionner

; POsition du curseur dans un EditorGadget

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
2)
Tu dois pouvoir modifier la taille des différentes colonnes, donc tu as juste à mettre la taille à 0 (en savegardant l'ancienne valeur si nécessaire), puis en la réinitialisant après un clic...

Lio