Seite 1 von 1

Scrollbargadget in Echtzeit?

Verfasst: 02.02.2007 19:10
von schamu
Hallo!
Wie funktioniert es das ich in Echtzeit auf ein Scrollbargadget reagieren kann?
Folgenden Code habe ich gefunden, er geht aber nicht.
Weiß da jemand ne Lösung?

Code: Alles auswählen

OpenWindow(0,300,300,400,70,"test",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))

ScrollBarGadget(0,10,40,380,20,1,10,1)
TextGadget(1,10,10,380,20,"1",#PB_Text_Center)

Procedure MyWindowCallback(WindowID, Message, wParam, lParam)
  Result = #PB_ProcessPureBasicEvents
  If Message=#WM_COMMAND And lParam=GadgetID(0)
    SetGadgetText(1,Str(GetGadgetState(0)))
  EndIf
  ProcedureReturn Result
EndProcedure

SetWindowCallback(@MyWindowCallback())
 
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow 

Verfasst: 02.02.2007 19:38
von Fluid Byte

Code: Alles auswählen

OpenWindow(0,300,300,400,70,"test",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ScrollBarGadget(0,10,40,380,20,1,10,1)
TextGadget(1,10,10,380,20,"1",#PB_Text_Center)

Procedure WindowCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
	If uMsg = #WM_HSCROLL And lParam = GadgetID(0)
		SetGadgetText(1,Str(GetGadgetState(0)))
	EndIf
	
	ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

SetWindowCallback(@WindowCallback())
 
While WaitWindowEvent() ! 16 : Wend

Verfasst: 02.02.2007 19:44
von ts-soft
Wenn man sich sowas etwas vereinfachen möchte, empfiehlt sich die
EasyVENT.pbi von srod: http://www.purebasic.fr/english/viewtop ... t=easyvent

Code: Alles auswählen

XIncludeFile "EasyVENT.pbi"

Procedure OnScroll(*sender.PB_Sender)
  SetGadgetText(1,Str(GetGadgetState(0)))
  ProcedureReturn #PB_ProcessPureBasicEvents 
EndProcedure

OpenWindow(0,300,300,400,70,"test",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))

ScrollBarGadget(0,10,40,380,20,1,10,1)
TextGadget(1,10,10,380,20,"1",#PB_Text_Center)

SetEventHandler(GadgetID(0), #onscroll, @OnScroll()) 
 
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow 
Diese Eventhandler machen einen das Leben etwas leichter.
Für einen Eventhandler ist das aber etwas übertrieben, da wäre der
Source von Fluid Byte sinnvoller

Verfasst: 02.02.2007 20:42
von schamu
Danke, das habe ich gesucht.
Funktioniert perfekt.

Das Sollte noch ins Codearchiv aufgenommen werden, denn der Code der Dort vorhanden ist geht nicht.