Page 1 sur 1

Défilement gadget

Publié : mer. 26/avr./2006 21:57
par Droopy
Dans un EditorGadget ou une ListIcon, comment faire pour toujours afficher automatiquement la dernière ligne lorsque l'on ajoute des datas ?
( sans avoir à faire défiler manuellement la l'ascenceur en bas )

( Genre ce qui se passe avec la fenêtre de débogage )

Publié : mer. 26/avr./2006 22:11
par Flype

Code : Tout sélectionner

OpenWindow(0,0,0,320,240,"test",#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ListIconGadget(0,5,5,310,110,"",200)
EditorGadget(1,5,120,310,110)

Procedure test()
  For i=0 To 200
    AddGadgetItem(0,i,Str(i))
    AddGadgetItem(1,i,Str(i))
    SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,i,#False)
    SendMessage_(GadgetID(1),#EM_SCROLL,#SB_LINEDOWN,#Null)
    Delay(50)
  Next
EndProcedure

CreateThread(@test(),0)

Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow

Publié : mer. 26/avr./2006 23:04
par Droopy
Merci beaucoup Flype :D

J'ai ajouté le ListView, comme ça la question est close .

Code : Tout sélectionner

;/ PureBasic 3.94
;/ Test Auto-Scroll des gadgets : ListIcon / ListView / Editor

Enumeration
  #Label1
  #Label2
  #Label3
  #ListView
  #ListIcon
  #Editor
EndEnumeration

OpenWindow(0,0,0,340,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"PureBasic Auto-Scroll Gadget Test")
CreateGadgetList(WindowID(0))
TextGadget(#Label1,10,10,100,20,"ListView")
TextGadget(#Label2,120,10,100,20,"ListIcon")
TextGadget(#Label3,230,10,100,20,"Editor")
ListViewGadget(#ListView,10,30,100,150)
ListIconGadget(#ListIcon,120,30,100,150,"Test",70) 
EditorGadget(#Editor,230,30,100,150) 

Procedure Ajout()
  
  For Compteur=1 To 50
    AddGadgetItem(#ListView,-1,Str(Compteur))
    AddGadgetItem(#ListIcon,-1,Str(Compteur))
    AddGadgetItem(#Editor,-1,Str(Compteur))
     
    SetGadgetState(#ListView,CountGadgetItems(#ListView)-1)                                   ;/ ListView
    SendMessage_(GadgetID(#ListIcon),#LVM_ENSUREVISIBLE,CountGadgetItems(#ListIcon)-1,#True)  ;/ ListIcon
    SendMessage_(GadgetID(#Editor), #EM_SCROLLCARET, #False,#False)                           ;/ EditorGadget
     
    Delay(100)
  Next
EndProcedure

CreateThread(@Ajout(),0)

Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow

Publié : jeu. 07/juin/2007 9:40
par Progi1984
Code en V4 :

Code : Tout sélectionner

;/ PureBasic 4
;/ Test Auto-Scroll des gadgets : ListIcon / ListView / Editor

Enumeration
  #Label1
  #Label2
  #Label3
  #ListView
  #ListIcon
  #Editor
EndEnumeration

OpenWindow(0,0,0,340,200,"PureBasic Auto-Scroll Gadget Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
TextGadget(#Label1,10,10,100,20,"ListView")
TextGadget(#Label2,120,10,100,20,"ListIcon")
TextGadget(#Label3,230,10,100,20,"Editor")
ListViewGadget(#ListView,10,30,100,150)
ListIconGadget(#ListIcon,120,30,100,150,"Test",70)
EditorGadget(#Editor,230,30,100,150)

Procedure Ajout()
 
  For Compteur=1 To 50
    AddGadgetItem(#ListView,-1,Str(Compteur))
    AddGadgetItem(#ListIcon,-1,Str(Compteur))
    AddGadgetItem(#Editor,-1,Str(Compteur))
     
    SetGadgetState(#ListView,CountGadgetItems(#ListView)-1)                                   ;/ ListView
    SendMessage_(GadgetID(#ListIcon),#LVM_ENSUREVISIBLE,CountGadgetItems(#ListIcon)-1,#True)  ;/ ListIcon
    SendMessage_(GadgetID(#Editor), #EM_SCROLLCARET, #False,#False)                           ;/ EditorGadget
     
    Delay(100)
  Next
EndProcedure

CreateThread(@Ajout(),0)

Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow

Publié : jeu. 07/juin/2007 10:29
par Kwai chang caine
La convertion ne marche pas chez moi :cry:

#LVM_ENSUREVISIBLE = Constant no found

Publié : jeu. 07/juin/2007 11:13
par Progi1984
#LVM_ENSUREVISIBLE = 4115 ; $1013

Publié : jeu. 07/juin/2007 11:24
par Kwai chang caine
Je te remercie Progi1984.
Tu va rire (C'est pas sur) mais cette fois c'est #EM_SCROLLCARET qui est manquant a l'appel 8O

Comment ça se fait que cela ne le fait pas chez toi ???
Me manquerait il un fichier res ????

Publié : jeu. 07/juin/2007 11:33
par Progi1984
#EM_SCROLLCARET = 183 ; $B7

Parceque j'ai travaillé pas mal sur les gadgets et que je me suis fait une lib accompagné d'un resident qui contient beaucoup beaucoup de constantes et structures manquantes !

Publié : jeu. 07/juin/2007 11:58
par Kwai chang caine
ALLELUIA !!!!

ça marche.
J'ai eu peur j'ai cru qu' a force d'avoir un programmeur nul, mon pure c'etait mis à etre malade :lol:

Grand merci de ton aide 8)