Slider Update?
Übersicht

![]() |
FirstdeathmakerBetreff: Slider Update? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab ein Problem mit dem Update des Sliders. Bei meinem unten angeführten Program hab ich einen Slider und ein Canvas (soll später eine Liste enthalten). Ich hab den Slider mit dem Canvas verbunden, dabei ergibt sich aber das Problem, dass der Slider erst ein EVENT_GADGETACTION emittiert, wenn er losgelassen wird, und davor garnichts passiert. Das Window sollte aber schon beim reinen Bewegen des Sliders verschoben werden. Wie mach ich das?
Code: [AUSKLAPPEN] SuperStrict Import MaxGUI.MaxGUI Import MaxGUI.Drivers Local window:TGadget = CreateWindow:TGadget( "Title" , ClientWidth(Desktop()) / 4 , ClientHeight(Desktop()) / 4 , ClientWidth(Desktop()) / 2 , ClientHeight(Desktop()) /2, Null, 13) Local canvas:TGadget = CreateCanvas:TGadget( 10 , 10 , ClientWidth(window) - 40 , ClientHeight(window) - 20 , window) Local canvasContentY:Float Local slider:TGadget = CreateSlider:TGadget( ClientWidth(window) - 30 ,10, 20,ClientHeight(window) - 20,window,SLIDER_VERTICAL) SetSliderRange(slider,0,100) CreateTimer 60 Repeat WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE End Case EVENT_TIMERTICK RedrawGadget canvas Case EVENT_GADGETPAINT SetGraphics CanvasGraphics(canvas) Cls DrawText "Hello World" , 10 , - canvasContentY DrawText "Hello New World" , 10 ,100- canvasContentY DrawText "Hello Brave New World" , 10 ,200- canvasContentY Flip Case EVENT_GADGETACTION Select TGadget(EventSource() ) Case slider canvasContentY = EventData() * 10 End Select End select Forever |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tjaja, auch den alten Hasen hier im Forum kann man die Suche immer mal ans Herz legen. ![]() https://www.blitzforum.de/foru...hp?t=20004 |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
oh *schäm*, hab zwar die suche benutzt, aber das oben angegebene nicht gefunden.
Danke! |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Problematisch wird die Geschichte mit den EventHooks allerdings, wenn du Cross-Plattform planst!
Selbige sorgen nämlich dafür, dass du unter OSX mannigfaltige Probleme mit Comboboxen, modalen Systemdialogen und ähnlichem Gelumpe bekommst. Dieses Problem ist schon seit gut einem Jahr bekannt und wurde noch nicht gefixt! Kleiner Workaround, für Sonderfälle ist es den Eventhook vorher pausieren zu lassen, bevor man einen Requester oder ähnliches öffnet. Pausieren heißt in dem Fall, einfach eine Pausen-Variable zu definieren und wenn diese dann True ist direkt das Event zurückzugeben Code: [AUSKLAPPEN] Function EventHook:Object (ID:Int, Data:Object, Context:Object)
Local Event:TEvent = TEvent(Data) If (ID <> EmitEventHook) Or (Not Event) Return Data If MyType.OnHookIdle() = True Return Data '<-- Hier wird die Pause abgefangen. Select Event.ID Case EVENT_GADGETPAINT Select Event.Source Case MyType.Canvas MyType.OnPaint () 'OnIrgendwas ist bei mir immer eine Methode die auf einen Event reagiert End Select Case EVENT_GADGETACTION Select Event.Source Case MyType.Scrollbar MyType.OnScroll () RedrawGadget (MyType.Canvas) End Select End Select Return Data End Function So in etwa sieht der passende Hook bei mir aus. cheers |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group