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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

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

Message 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
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message 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
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Répondre