Dimenssionement d'un ScrollAreaGadget

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Dimenssionement d'un ScrollAreaGadget

Message par olivier »

Salut à tous

Voilà je voudrais bien controler les ScrollAreaGadget :
1- Comment les redimenssioner (taille interieur)
2- Comment les déplacer (remonter automatiquement tout en haut)
3- Comment les faire fonctionner avec la molette

Mes solutions mais j'attends mieux....
1- ????
2- SetScrollPos_(GadgetID(#scrollgadget),#SB_VERT,0,1)
Mais ça n'a pas l'aire de bien marcher
3- Récuperer l'action sur la molette et déplacer la fenetre avec SetScrollPos....

Merci d'avance si vous avez mieux
Vive le temps libre !
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Salut Olivier, je viens de poster un code dans "Trucs et Astuces" qui pourra t'aider pour le redimensionnement d'un scrollareagadget. C'est un images viewer relativement simple qui peut être un exemple de départ.

@+ Jacobus
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Voici un code d'exempe pour gérer la molette.

Code : Tout sélectionner

;Application du message WM_MOUSEWEEL 

#WM_MOUSEWHEEL = $20A 
Global Hscroll.l 

Procedure ProcedureCallback(WindowID, Message, wParam, lParam) 
  Resultat = #PB_ProcessPureBasicEvents 
  ;Debug Message 
  Select Message 
    Case #WM_MOUSEWHEEL 
      hi.w=(wParam>>16) 
      lo.w=wParam & $FFFF 
      
      If lo.w & #MK_MBUTTON 
        ;indique le click de la molette seulement si celle-ci tourne 
        MessageRequester("Info", "Click de la molette") 
      EndIf 
      
      coef=4 
      delta=hi*coef 
      Debug delta 
      
      While delta>120 
        SendMessage_(Hscroll, #WM_VSCROLL, #SB_LINEUP, 0) 
        delta=delta-(120+coef) 
      Wend 
      
      While delta< -120 
        SendMessage_(Hscroll, #WM_VSCROLL, #SB_LINEDOWN, 0) 
        delta=delta+(120+coef) 
      Wend 

  EndSelect 
  
  ProcedureReturn Resultat 
EndProcedure 
  

If OpenWindow(0,0,0,400,400,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ScrollAreaGadget") And CreateGadgetList(WindowID(0)) 
  Hscroll=ScrollAreaGadget(0, 10, 10,360,300, 340, 800, 30) 
  ButtonGadget  (1, 10, 140,230, 30,"Button 1") 
  CloseGadgetList() 
    
  SetWindowCallback(@ProcedureCallback()) 

  Repeat 
    EventID.l=WaitWindowEvent() 
    Select EventID 
      Case #PB_EventGadget 
        Select EventGadgetID() 
          Case 1 

        EndSelect 
          
      Case #WM_CLOSE 
        Quit=1 
    EndSelect 
  Until Quit=1 
EndIf
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

@Jocobus

Miam miam ton exemple dans truc et astuce, il répond à ma question et en plus il ouvre la porte de l'impression.....

@Nico

Ben y a plus qu'a transposer, ce petit code pour faire bouger ma fenetre. Impeccable

Merci à vous et bonne journée
Vive le temps libre !
Répondre