Pendant que tu fais de l'informatique, tu fais pas des posts à rallonge. C'est toujours ça de pris. C'est pour ça qu'on t'aideKwai chang caine a écrit :Les mots n'ont que peu de poid devant ma reconnaissance.
Merci beaucoup de t'etre penché sur mon berceau de BB programmeur.![]()
Je vais pouvoir mettre ça en application lundi.
Je suis super content et je sent que mon chef partagera mon enthousiasme.![]()
Bon pour ta femme, je suis en peu jaloux, mais bon je vais essayer d'apprendre à partager.
D'ailleurs ça me fait penser et tu va rire, que j'avais oublié d'en parler à la mienne.![]()
C'est balot.![]()
Encore merci sincerement de ta precieuse aide et evidemment à tous ceux de ce POST.
Que ferais-je sans vous ..........................surement pas de l'informatique
ListViewGadget style menu démarrer avec MouseWheel [Résolu]
- Kwai chang caine
- Messages : 6992
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Faut bien que je cause, y'a plus grand monde en ce moment à part les "meubles" comme DOBRO
Allez allez CHRIS quitte ton masque de ronchon on t'as reconnu.
En fait t'es un gentil gars, chien qui aboie ne mord pas
J'pari meme que t'as dans ton tirroir un nez rouge pour faire des rigolades entre copains
Et encore heureusement que vous m'entendez pas y parait que je suis bavard
Ca c'est mon entourage qui le dit, mais j'en doute un peu .....
Enfin j'taime bien quand meme
Allez allez CHRIS quitte ton masque de ronchon on t'as reconnu.
En fait t'es un gentil gars, chien qui aboie ne mord pas
J'pari meme que t'as dans ton tirroir un nez rouge pour faire des rigolades entre copains
Et encore heureusement que vous m'entendez pas y parait que je suis bavard
Ca c'est mon entourage qui le dit, mais j'en doute un peu .....
Enfin j'taime bien quand meme
- Kwai chang caine
- Messages : 6992
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Eh ben...Kwai...j'ai a peine tourné le dos (d'ailleurs avec toi je devrais faire gaffe ) que déjà tu me remplaces!!!
Zut !!!! pourtant j'metais bien caché dans cette rubrique
T'inquiete, j'ai de l'amour pour tout le monde, surtout mes amis.
Faut dire qu'a notre epoque c'est de plus en plus rare d'en avoir des vrais.
Le monde est amour......
En fin de compte, les hippies c'etait peut etre pas si nul
Au fait pas d'inquietude pour me tourner le dos, je me lave avec du gel douche, pas des savonnettes
- Kwai chang caine
- Messages : 6992
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Je viens de modifier le code de RV à ma sauce.
Mais je voulais en plus que l'image de fond soit inclue dans l'application.
Et evidemment je n'y arrive pas vraiment.
Ca marche, mais comment faut il faire pour que le Create image connaisse la taille de l'image à charger,pour remplacer "CreateImage(#ImageFond, 2000,100) " ??
Mais je voulais en plus que l'image de fond soit inclue dans l'application.
Et evidemment je n'y arrive pas vraiment.
Ca marche, mais comment faut il faire pour que le Create image connaisse la taille de l'image à charger,pour remplacer "CreateImage(#ImageFond, 2000,100) " ??
Code : Tout sélectionner
; Code créé par RV
#win=1
#ScrollBar = 10
#ImageGadget = 31
#ImageFond = 32
#FontArial = 40
Global event,eventtype
Global selection=-1
CreateImage(#ImageFond, 2000,100)
CatchImage(#ImageGadget,?DebutImageData,?FinImageData - ?DebutImageData )
LoadFont(#FontArial,"arial",9,#PB_Font_Bold)
Procedure Drawing(lig)
StartDrawing(ImageOutput(#ImageFond))
Box(0,0,ImageWidth(#ImageFond),ImageHeight(#ImageFond),RGB(255,255,255))
DrawImage(ImageID(#ImageGadget),0,0)
If lig > -1
Box(0,lig*14,ImageWidth(#ImageFond),14,RGB(0,200,0))
EndIf
If selection > -1
Box(0,selection*14,ImageWidth(#ImageFond),14,RGB(0,0,150))
EndIf
DrawingMode(1)
DrawingFont(FontID(#FontArial))
For i=0 To 71
If i=lig Or i=selection
coul=RGB(255,255,255)
Else
coul=RGB(0,0,0)
EndIf
txt$="Item "+Str(i)
DrawText(10,i*14,txt$,coul)
Next i
StopDrawing()
If IsGadget(#ImageGadget)
SetGadgetState(#ImageGadget,ImageID(#ImageFond))
EndIf
EndProcedure
Procedure.l FocusItem()
PosScrollH.l = GetScrollPos_(GadgetID(#ScrollBar), #SB_HORZ)
PosScrollV.l = GetScrollPos_(GadgetID(#ScrollBar), #SB_VERT)
wmx=WindowMouseX(#win):wmy=WindowMouseY(#win)
ligne=Round((wmy+PosScrollV-GadgetY(#ScrollBar))/14,0)
If EventGadget()=#ImageGadget And eventtype=#PB_EventType_LeftClick
selection=ligne
EndIf
If wmx>GadgetX(#ScrollBar)+2 And wmx<GadgetX(#ScrollBar)+GadgetWidth(#ScrollBar)-4 And wmy>GadgetY(#ScrollBar)+2 And wmy<GadgetY(#ScrollBar)+GadgetHeight(#ScrollBar)-4
drawing(ligne)
SetWindowTitle(#win,"Ligne "+Str(Round((wmy+PosScrollV-GadgetY(#ScrollBar))/14,0)))
Else
drawing(-1)
SetWindowTitle(#win,"Hors gadget")
EndIf
EndProcedure
drawing(-1)
OpenWindow(#win,100,100,242,400,"sdhfjghj",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(#win))
ScrollAreaGadget(#ScrollBar,10,10,ImageWidth(#ImageFond) + 22,380,ImageWidth(#ImageFond),ImageHeight(#ImageFond),10)
ImageGadget(#ImageGadget,0,0,ImageWidth(#ImageFond),ImageHeight(#ImageFond),ImageID(#ImageFond))
CloseGadgetList()
Repeat
event=WaitWindowEvent()
eventtype=EventType()
ancselection=selection
FocusItem()
If selection<>ancselection
MessageRequester("Info","Item "+Str(selection))
EndIf
Until event=#PB_Event_CloseWindow
End
DataSection
DebutImageData :
;**************
IncludeBinary "c:\sans titre.bmp"
FinImageData :
;************
EndDataSection
Code : Tout sélectionner
CatchImage(#ImageGadget,?DebutImageData)
CreateImage(#ImageFond,ImageWidth(#ImageGadget),ImageHeight(#ImageGadget))- Kwai chang caine
- Messages : 6992
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Mon sauveur !!!!!!!
J'avais pas vu que tu etais caché dans mon ecran
J'ai un autre challenge à te demander, je voudrais que l'image qui est carré reste en fond et que le texte glisse.
Quand on actione la scrollbar le texte defile en haut ou en bas et l'image de fond reste la meme et au meme endroit.
C'est possible ça ???
Parce que ce que j'avais pas pensé c'est que quand j'ai noir d'item et que je descend la scrollbar, à un moment, l'image se termine et derriere c'est tout blanc
Merci beaucoup de ton aide
J'avais pas vu que tu etais caché dans mon ecran
J'ai un autre challenge à te demander, je voudrais que l'image qui est carré reste en fond et que le texte glisse.
Quand on actione la scrollbar le texte defile en haut ou en bas et l'image de fond reste la meme et au meme endroit.
C'est possible ça ???
Parce que ce que j'avais pas pensé c'est que quand j'ai noir d'item et que je descend la scrollbar, à un moment, l'image se termine et derriere c'est tout blanc
Merci beaucoup de ton aide
tu me voisJ'avais pas vu que tu etais caché dans mon ecran
J'ai un autre challenge à te demander, je voudrais que l'image qui est carré reste en fond et que le texte glisse.
Quand on actione la scrollbar le texte defile en haut ou en bas et l'image de fond reste la meme et au meme endroit.
Code : Tout sélectionner
; Code créé par RV
#win=1
#ScrollBar = 10
#ImageGadget = 31
#ImageFond = 32
#FontArial = 40
Global event,eventtype
Global selection=-1
Global HautItem=12,nbitems=500
CatchImage(#ImageGadget,?DebutImageData,?FinImageData - ?DebutImageData )
CreateImage(#ImageFond, ImageWidth(#ImageGadget),ImageHeight(#ImageGadget))
LoadFont(#FontArial,"arial",9,#PB_Font_Bold)
Procedure Drawing(lig)
StartDrawing(ImageOutput(#ImageFond))
Box(0,0,ImageWidth(#ImageFond),ImageHeight(#ImageFond),RGB(255,255,255))
DrawImage(ImageID(#ImageGadget),0,0)
DrawingMode(1)
DrawingFont(FontID(#FontArial))
If IsGadget(#ScrollBar)
num=-1
itemmax=GetGadgetState(#ScrollBar)+(ImageWidth(#ImageFond)/HautItem)
If itemmax>(nbitems-1)
itemmax=(nbitems-1)
EndIf
For i=GetGadgetState(#ScrollBar) To itemmax
num=num+1
coul=RGB(0,0,0)
If num=lig
Box(0,num*HautItem,ImageWidth(#ImageFond),HautItem,RGB(0,200,0))
coul=RGB(255,255,255)
EndIf
If i=selection
Box(0,num*HautItem,ImageWidth(#ImageFond),HautItem,RGB(0,0,150))
coul=RGB(255,255,255)
EndIf
txt$="Item "+Str(i)
DrawText(10,(num*HautItem)+((HautItem-TextHeight(txt$))/2),txt$,coul)
Next i
EndIf
StopDrawing()
If IsGadget(#ImageGadget)
SetGadgetState(#ImageGadget,ImageID(#ImageFond))
EndIf
EndProcedure
Procedure.l FocusItem()
PosScrollH.l = GetScrollPos_(GadgetID(#ImageGadget), #SB_HORZ)
PosScrollV.l = GetScrollPos_(GadgetID(#ImageGadget), #SB_VERT)
wmx=WindowMouseX(#win):wmy=WindowMouseY(#win)
ligne=Round((wmy-GadgetY(#ImageGadget))/HautItem,0)
If EventGadget()=#ImageGadget And eventtype=#PB_EventType_LeftClick And ligne+GetGadgetState(#ScrollBar)<=(nbitems-1)
selection=ligne+GetGadgetState(#ScrollBar)
EndIf
If wmx>GadgetX(#ImageGadget)+2 And wmx<GadgetX(#ImageGadget)+GadgetWidth(#ImageGadget)-4 And wmy>GadgetY(#ImageGadget)+2 And wmy<GadgetY(#ImageGadget)+GadgetHeight(#ImageGadget)-4 And ligne+GetGadgetState(#ScrollBar)<=(nbitems-1)
drawing(ligne)
SetWindowTitle(#win,"Item "+Str(ligne+GetGadgetState(#ScrollBar)))
Else
drawing(-1)
SetWindowTitle(#win,"Hors Items")
EndIf
EndProcedure
drawing(-1)
OpenWindow(#win,100,100,800,700,"sdhfjghj",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(#win))
ImageGadget(#ImageGadget,0,0,ImageWidth(#ImageFond),ImageHeight(#ImageFond),ImageID(#ImageFond),#PB_Image_Border)
ScrollBarGadget(#ScrollBar,GadgetX(#ImageGadget)+GadgetWidth(#ImageGadget),GadgetY(#ImageGadget),20,GadgetHeight(#ImageGadget),0,(nbitems-1),nbitems/HautItem,#PB_ScrollBar_Vertical)
Repeat
event=WaitWindowEvent()
eventtype=EventType()
ancselection=selection
FocusItem()
If selection<>ancselection
MessageRequester("Info","Item "+Str(selection))
EndIf
Until event=#PB_Event_CloseWindow
End
DataSection
DebutImageData :
;**************
IncludeBinary "c:\sans titre.bmp"
FinImageData :
;************
EndDataSectionDonc si tu veux que ta fausse ListViewGadget se termine pile au nombre d'items alors il faut que nbitems*HautItem/ImageHeight(#ImageFond) retourne un nombre entier!
- Kwai chang caine
- Messages : 6992
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Tu es un ange
Décidément tu devrais vraiment te trouver un dimanche de libre
Tu va me dire moins on y connais et plus on est exigeant, est ce y'aurais un moyen pour que l'on voit défiler les items pendant que l'on descend la scrollbar et alors la tu atteindrais la perfection.
Si tu ne peux pas, te casse pas la tete tu m'a vraiment hyper dépanné.
Comment pourrais je un jour te remercier
Surement pas avec du code
Je quitte le PC ce soir par obligation, j'ai passé la journée à bidouiller ton super premier code et à tenter de le comprendre.
Demain je remet ça pour ton nouveau et ce sera le panard complet.
Moi j'avais bidouillé ça mais le fond bougeait avec l'ascenseur.
L'ideal serait un mix de ces deux codes, c'est à dire comme tu as fait mais avec les items qui défilent comme celui la.
Voila l'image que j'utilise :

Encore merci pour tout
Décidément tu devrais vraiment te trouver un dimanche de libre
Tu va me dire moins on y connais et plus on est exigeant, est ce y'aurais un moyen pour que l'on voit défiler les items pendant que l'on descend la scrollbar et alors la tu atteindrais la perfection.
Si tu ne peux pas, te casse pas la tete tu m'a vraiment hyper dépanné.
Comment pourrais je un jour te remercier
Surement pas avec du code
Je quitte le PC ce soir par obligation, j'ai passé la journée à bidouiller ton super premier code et à tenter de le comprendre.
Demain je remet ça pour ton nouveau et ce sera le panard complet.
Moi j'avais bidouillé ça mais le fond bougeait avec l'ascenseur.
L'ideal serait un mix de ces deux codes, c'est à dire comme tu as fait mais avec les items qui défilent comme celui la.
Code : Tout sélectionner
; Code créé par RV
#win=1
#ScrollBar = 10
#ImageGadget = 31
#ImageFond = 32
#FontArial = 40
Global event,eventtype
Global selection=-1
UseJPEGImageDecoder()
Procedure Drawing(lig)
StartDrawing(ImageOutput(#ImageFond))
Box(0,0,ImageWidth(#ImageFond),ImageHeight(#ImageFond),RGB(255,255,255))
DrawImage(ImageID(#ImageGadget),0,0)
If lig > -1
Box(0,lig*14,ImageWidth(#ImageFond),14,RGB(0,200,0))
EndIf
If selection > -1
Box(0,selection*14,ImageWidth(#ImageFond),14,RGB(0,0,150))
EndIf
DrawingMode(1)
DrawingFont(FontID(#FontArial))
For i=0 To 71
If i=lig Or i=selection
coul=RGB(255,255,255)
Else
coul=RGB(0,0,0)
EndIf
txt$="Item "+Str(i)
DrawText(10,i*14,txt$,coul)
Next i
StopDrawing()
If IsGadget(#ImageGadget)
SetGadgetState(#ImageGadget,ImageID(#ImageFond))
EndIf
EndProcedure
Procedure.l FocusItem()
PosScrollH.l = GetScrollPos_(GadgetID(#ScrollBar), #SB_HORZ)
PosScrollV.l = GetScrollPos_(GadgetID(#ScrollBar), #SB_VERT)
wmx=WindowMouseX(#win):wmy=WindowMouseY(#win)
ligne=Round((wmy+PosScrollV-GadgetY(#ScrollBar))/14,0)
If EventGadget()=#ImageGadget And eventtype=#PB_EventType_LeftClick
selection=ligne
EndIf
If wmx>GadgetX(#ScrollBar)+2 And wmx<GadgetX(#ScrollBar)+GadgetWidth(#ScrollBar)-4 And wmy>GadgetY(#ScrollBar)+2 And wmy<GadgetY(#ScrollBar)+GadgetHeight(#ScrollBar)-4
drawing(ligne)
SetWindowTitle(#win,"Ligne "+Str(Round((wmy+PosScrollV-GadgetY(#ScrollBar))/14,0)))
Else
drawing(-1)
SetWindowTitle(#win,"Hors gadget")
EndIf
EndProcedure
OpenWindow(#win,100,100,242,255,"sdhfjghj",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(#win))
CatchImage(#ImageGadget,?DebutImageData)
CreateImage(#ImageFond, ImageWidth(#ImageGadget), 1000)
LoadFont(#FontArial,"Arial",9,#PB_Font_Bold)
drawing(-1)
ScrollAreaGadget(#ScrollBar, 5, 5, WindowWidth(#win) - 10, WindowHeight(#win) - 10, WindowWidth(#win) + 100, ImageHeight(#ImageFond), 10)
ImageGadget(#ImageGadget, 0, 0, SansEffet, SansEffet, ImageID(#ImageFond))
CloseGadgetList()
Repeat
event=WaitWindowEvent()
eventtype=EventType()
ancselection=selection
FocusItem()
If selection<>ancselection
MessageRequester("Info","Item "+ Str(selection))
EndIf
Until event=#PB_Event_CloseWindow
End
DataSection
DebutImageData :
;**************
IncludeBinary "c:\fond2.jpg"
FinImageData :
;************
EndDataSection 
Encore merci pour tout
@Kwai
Par contre avec une TrackBar...ça marche!
Bon courage pour la compréhension car tu as dû te rendre compte que je ne mettais aucune remarque dans le code
Faut bien que tu bosses un peu!
heu...on peut voir ça en mp? Ya du monde qui nous regarde!Décidément tu devrais vraiment te trouver un dimanche de libre
En étant moins exigeant la prochaine fois!Comment pourrais je un jour te remercier
Bah si...si tu me files la carte bleue avec!Surement pas avec du code
Le problème avec une ScrollBar c'est que quand tu cliques sur l'ascenseur, tant que tu ne le relaches pas tu ne connais pas le numéro d'étage (GetGadgetState(#ScrollBar))!est ce y'aurais un moyen pour que l'on voit défiler les items pendant que l'on descend la scrollbar
Par contre avec une TrackBar...ça marche!
Code : Tout sélectionner
; Code créé par RV
#win=1
#TrackBar = 10
#ImageGadget = 31
#ImageFond = 32
#FontArial = 40
Global event,eventtype
Global LigneSelect=-1,LigneSurv=-1,LigneEcran=0
Global HautItem=12,nbitems=500
UseJPEGImageDecoder()
CatchImage(#ImageGadget,?DebutImageData,?FinImageData - ?DebutImageData )
CreateImage(#ImageFond, ImageWidth(#ImageGadget),ImageHeight(#ImageGadget))
LoadFont(#FontArial,"arial",9,#PB_Font_Bold)
Procedure Drawing()
StartDrawing(ImageOutput(#ImageFond))
DrawImage(ImageID(#ImageGadget),0,0)
DrawingMode(1)
DrawingFont(FontID(#FontArial))
If IsGadget(#TrackBar)
num=-1
itemmax=NbItems-GetGadgetState(#TrackBar)+(ImageWidth(#ImageFond)/HautItem)
If itemmax>(NbItems-1)
itemmax=(NbItems-1)
EndIf
For i=NbItems-GetGadgetState(#TrackBar)-(ImageWidth(#ImageFond)/HautItem) To itemmax
num=num+1
coul=RGB(0,0,0)
If i=LigneSurv
Box(0,num*HautItem,ImageWidth(#ImageFond),HautItem,RGB(0,200,0))
coul=RGB(255,255,255)
EndIf
If i=LigneSelect
Box(0,num*HautItem,ImageWidth(#ImageFond),HautItem,RGB(0,0,150))
coul=RGB(255,255,255)
EndIf
txt$="Item "+Str(i)
DrawText(10,(num*HautItem)+((HautItem-TextHeight(txt$))/2),txt$,coul)
Next i
EndIf
StopDrawing()
If IsGadget(#ImageGadget)
SetGadgetState(#ImageGadget,ImageID(#ImageFond))
EndIf
EndProcedure
Procedure.l FocusItem()
PosScrollH.l = GetScrollPos_(GadgetID(#ImageGadget), #SB_HORZ)
PosScrollV.l = GetScrollPos_(GadgetID(#ImageGadget), #SB_VERT)
wmx=WindowMouseX(#win):wmy=WindowMouseY(#win)
LigneEcran=Round((wmy-GadgetY(#ImageGadget))/HautItem,0)
LigneSurv=LigneEcran+NbItems-GetGadgetState(#TrackBar)-(ImageWidth(#ImageFond)/HautItem)
If LigneSurv>NbItems-1
LigneSurv=-1
EndIf
If EventGadget()=#ImageGadget And eventtype=#PB_EventType_LeftClick And LigneSurv<=NbItems
LigneSelect=LigneSurv
EndIf
If wmx>GadgetX(#ImageGadget) And wmx<GadgetX(#ImageGadget)+GadgetWidth(#ImageGadget) And wmy>GadgetY(#ImageGadget) And wmy<GadgetY(#ImageGadget)+GadgetHeight(#ImageGadget)
drawing()
SetWindowTitle(#win,"LE="+Str(LigneEcran)+" LSu="+Str(LigneSurv)+" LSe="+Str(LigneSelect))
Else
LigneSurv=-1
drawing()
SetWindowTitle(#win,"Hors Gadget")
EndIf
EndProcedure
drawing()
OpenWindow(#win,100,100,ImageWidth(#ImageFond)+20,ImageHeight(#ImageFond),"sdhfjghj",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(#win))
ImageGadget(#ImageGadget,20,0,ImageWidth(#ImageFond),ImageHeight(#ImageFond),ImageID(#ImageFond),#PB_Image_Border)
TrackBarGadget(#TrackBar,0,GadgetY(#ImageGadget),20,GadgetHeight(#ImageGadget),0,NbItems-(ImageHeight(#ImageFond)/HautItem),#PB_TrackBar_Vertical)
SetGadgetState(#TrackBar,NbItems-1)
Repeat
event=WaitWindowEvent(1)
eventtype=EventType()
ancLigneSelect=LigneSelect
FocusItem()
If LigneSelect<>ancLigneSelect
MessageRequester("Info","Item "+Str(LigneSelect))
EndIf
Until event=#PB_Event_CloseWindow
End
DataSection
DebutImageData :
;**************
IncludeBinary "c:\fond2.jpg"
FinImageData :
;************
EndDataSectionFaut bien que tu bosses un peu!
- Kwai chang caine
- Messages : 6992
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Ouais tu as raison, d'habitude, en une, voir deux demandes, j'ai ce que je veux.En étant moins exigeant la prochaine fois!
Mais cette fois, ça fait 3 jours que je me galere, des que j'ai un effet, je me rend compte qu'un autre effet indesirable se produit
Ca m'a sincerement géné d'abuser de ta gentillesse,mais ça fait 3 jours que je fouine le "veb" sur tous les forums et que je trouve pas.
Tout à fait comme je te l'ai dit j'ai tenté de me débrouiller et essayer de courrir meme si je suis cul de jate.Le problème avec une ScrollBar c'est que quand tu cliques sur l'ascenseur, tant que tu ne le relaches pas tu ne connais pas le numéro d'étage (GetGadgetState(#ScrollBar))!
Alors, j'ai lu sur le forum US par FRED hitself, que la scrollbar ne retournais son resultat qu'a l'evenement mouseup
Alors, j'ai trouvé des codes allemands à force de chercher qui corrigent cette oubli de FRED
Mon bonheur etait immense, mais ils sont tous les 2 en v3.94
Bon pas grave me dis-je, y'a PbSourceconverter qui va réglé ça.
Eh ben que néni, pas moyen de les convertir en v4
Alors j'ai posté sur le forum US pour voir si une bonne ame, voulait bien me les convertir.
J'essaie de distribuer le boulot
J'ai tellement honte parfois d'etre si mauvais.
http://www.purebasic.fr/english/viewtopic.php?t=30135
Et j'avais l'espoir de pouvoir mixer ton génial code avec celui de DANILO ou Froggerprogger
T'inquiete pas, je bosse, je bosse, je torture tes codes.Bon courage pour la compréhension car tu as dû te rendre compte que je ne mettais aucune remarque dans le code
Faut bien que tu bosses un peu!
Hier celui d'avant hier, et aujourd'hui celui d'hier mais comme tu le voit sans grands résultats
Tu va rire (j'suis pas sur en fait
Alors tu le vois, je sais pas si y'a de l'espoir
Merci pour ton nouveau code, c'est surprenant comme effet, cette fois on s'approche de la vérité.
Avec ce dernier code, et si j'arrive à trouver ou à me faire traduire en v4.0 l'un des 2 autres codes, j'arriverais peut etre à la jouissance totale
Et peut etre sans te redéranger
En tout cas, je me répete, mais je te remercie mille fois.
En attendant........"groumph,groumph", fu weux on monmon ??

- Kwai chang caine
- Messages : 6992
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Ayaih !!!!!
Maitre GNOZAL a eu la gentilesse de me traduire le code de DANILO en v4.0 :
Je suis en train d'éssayer de remplacer la TrackBar de ton dernier code par une scrollbar qui cette fois grace à cette procedure remonte sa position pendant le scrolling.
Ou la la c'est chaud !!!
Maitre GNOZAL a eu la gentilesse de me traduire le code de DANILO en v4.0 :
Code : Tout sélectionner
;http://www.purebasic.fr/english/viewtopic.php?p=223770#223770
Procedure RealTimeScrollEvent(GadgetID,Pos)
; Your stuff here, for each Scrollbar
Select GadgetID
Case GadgetID(1) ; Scrollbar 1
SetGadgetText(2,Str(Pos))
Case GadgetID(3) ; Scrollbar 2
SetGadgetText(4,Str(Pos))
EndSelect
EndProcedure
Procedure ScrollCallback(hwnd,msg,wParam,lParam)
; dont change this procedure
Shared DK_OldScrollCallback
If ((msg = #WM_HSCROLL) Or (msg = #WM_VSCROLL)) And (wParam & $FFFF) = #SB_THUMBTRACK
RealTimeScrollEvent(lParam,(wParam >> 16) & $FFFF)
EndIf
If DK_OldScrollCallback
ProcedureReturn CallWindowProc_(DK_OldScrollCallback,hwnd,msg,wParam,lParam)
Else
ProcedureReturn 0
EndIf
EndProcedure
OpenWindow(0,200,200,200,200,"ScrollIt!",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ScrollBarGadget(1,20,20,15,160,1,1000,100,#PB_ScrollBar_Vertical)
TextGadget(2,0,0,100,20,"1")
ScrollBarGadget(3,40,20,100,15,1,8000,1)
TextGadget(4,100,0,100,20,"1")
DK_OldScrollCallback = SetWindowLong_(WindowID(0),#GWL_WNDPROC,@ScrollCallback())
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindowOu la la c'est chaud !!!
Kwai chang caine a écrit :En attendant........"groumph,groumph", fu weux on monmon ??![]()
Impec le code de Danilo...je garde...il me reservira
Sinon pour ton problème...vois si enfin
Code : Tout sélectionner
; Code créé par RV avec l'aide de Kwai chang caine :D
#win=1
#ScrollBar = 10
#ImageGadget = 31
#ImageFond = 32
#FontArial = 40
Global event
Global LigneSelect=-1,LigneSurv=-1,NivScrollBar=0
Global HautItem=12,nbitems=500
UseJPEGImageDecoder()
CatchImage(#ImageGadget,?DebutImageData,?FinImageData - ?DebutImageData )
CreateImage(#ImageFond, ImageWidth(#ImageGadget),ImageHeight(#ImageGadget))
LoadFont(#FontArial,"arial",9,#PB_Font_Bold)
Procedure Drawing()
StartDrawing(ImageOutput(#ImageFond))
Box(0,0,ImageWidth(#ImageFond),ImageHeight(#ImageFond),RGB(255,255,255))
DrawImage(ImageID(#ImageGadget),0,0)
If IsGadget(#ScrollBar)
DrawingMode(1)
DrawingFont(FontID(#FontArial))
For i=0 To nbitems-1
coul=RGB(0,0,0)
If i=LigneSurv
Box(0,(i-NivScrollBar)*HautItem,ImageWidth(#ImageFond),HautItem,RGB(0,200,0))
coul=RGB(255,255,255)
EndIf
If i=LigneSelect
Box(0,(i-NivScrollBar)*HautItem,ImageWidth(#ImageFond),HautItem,RGB(0,0,150))
coul=RGB(255,255,255)
EndIf
txt$="Item "+Str(i)
DrawText(10,((i-NivScrollBar)*HautItem)+((HautItem-TextHeight(txt$))/2),txt$,coul)
Next i
EndIf
StopDrawing()
If IsGadget(#ImageGadget)
SetGadgetState(#ImageGadget,ImageID(#ImageFond))
EndIf
EndProcedure
Procedure ScrollCallback(hwnd,msg,wParam,lParam)
; dont change this procedure ;Oups...trop tard :D
Shared DK_OldScrollCallback
If ((msg = #WM_HSCROLL) Or (msg = #WM_VSCROLL)) And (wParam & $FFFF) = #SB_THUMBTRACK
NivScrollBar=((wParam >> 16) & $FFFF)
Drawing()
EndIf
If DK_OldScrollCallback
ProcedureReturn CallWindowProc_(DK_OldScrollCallback,hwnd,msg,wParam,lParam)
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure.l FocusItem()
wmx=WindowMouseX(#win):wmy=WindowMouseY(#win)
LigneSurv=NivScrollBar+Round((wmy-GadgetY(#ImageGadget))/HautItem,0)
If EventGadget()=#ScrollBar And GetGadgetState(#ScrollBar)<>NivScrollBar
NivScrollBar=GetGadgetState(#ScrollBar)
EndIf
If EventGadget()=#ImageGadget And EventType()=#PB_EventType_LeftClick And LigneSurv<=(nbitems-1)
LigneSelect=LigneSurv
EndIf
If wmx<=GadgetX(#ImageGadget) Or wmx>=GadgetX(#ImageGadget)+GadgetWidth(#ImageGadget) Or wmy<=GadgetY(#ImageGadget) Or wmy>=GadgetY(#ImageGadget)+GadgetHeight(#ImageGadget) Or LigneSurv>(nbitems-1)
LigneSurv=-1
EndIf
Drawing()
EndProcedure
OpenWindow(#win,100,100,ImageWidth(#ImageFond)+24,ImageHeight(#ImageFond)+4,"sdhfjghj",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(#win))
ImageGadget(#ImageGadget,0,0,ImageWidth(#ImageFond),ImageHeight(#ImageFond),ImageID(#ImageFond),#PB_Image_Border)
ScrollBarGadget(#ScrollBar,GadgetX(#ImageGadget)+GadgetWidth(#ImageGadget),GadgetY(#ImageGadget),20,GadgetHeight(#ImageGadget),0,(nbitems-1),ImageHeight(#ImageGadget)/HautItem,#PB_ScrollBar_Vertical)
DK_OldScrollCallback = SetWindowLong_(WindowID(#win),#GWL_WNDPROC,@ScrollCallback())
Repeat
event=WaitWindowEvent()
ancLigneSelect=LigneSelect
FocusItem()
If LigneSelect<>ancLigneSelect
MessageRequester("Info","Item "+Str(LigneSelect))
EndIf
Until event=#PB_Event_CloseWindow
End
DataSection
DebutImageData :
IncludeBinary "c:\Fond2.jpg"
FinImageData :
EndDataSection- Kwai chang caine
- Messages : 6992
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
PARFAIT !!!
Que dis-je parfait ....
GENIAL
GRANDIOSE
MIROBOLANT
FORMIDABLE
TITANESQUE
SPLENDIDE
ASTRONOMIQUE ....
Je n'en dirais pas plus, ce serais éxagérer
En un mot c'est exactement ce que je voulais
Que dis-je EXACTEMENT
PARFAITEMENT
PILE POIL ...
Les mots n'ont que peu de valeur devant le travail que tu as éffectué pour moi.
Je te remercie encore.
Avoue quand meme que je suis exigeant mais tu es arrivé à un résultat auquel meme toi tu ne croyais pas arriver.
Non non ne me remercie pas
En tout cas c'est "beaucoup de la honneur" la premiere ligne de commentaire de ton code.
Je vais l'imprimer , l'accrocher au dessus de mon bureau et la relire de temps en temps quand je m'appercevrais pour la millieme fois que je suis une burne
Je te souhaite une excellente soirée à toi et ton épouse
Et excuse moi encore de mes exigeances bien au dessus de mes moyens
A bientot (dommage pour toi
)
Ton serviteur
Burne chang caine
Que dis-je parfait ....
GENIAL
GRANDIOSE
MIROBOLANT
FORMIDABLE
TITANESQUE
SPLENDIDE
ASTRONOMIQUE ....
Je n'en dirais pas plus, ce serais éxagérer
En un mot c'est exactement ce que je voulais
Que dis-je EXACTEMENT
PARFAITEMENT
PILE POIL ...
Les mots n'ont que peu de valeur devant le travail que tu as éffectué pour moi.
Je te remercie encore.
Avoue quand meme que je suis exigeant mais tu es arrivé à un résultat auquel meme toi tu ne croyais pas arriver.
Non non ne me remercie pas
En tout cas c'est "beaucoup de la honneur" la premiere ligne de commentaire de ton code.
Je vais l'imprimer , l'accrocher au dessus de mon bureau et la relire de temps en temps quand je m'appercevrais pour la millieme fois que je suis une burne
Je te souhaite une excellente soirée à toi et ton épouse
Et excuse moi encore de mes exigeances bien au dessus de mes moyens
A bientot (dommage pour toi
Ton serviteur
Burne chang caine