Window Canvas ... Liste
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: Window Canvas ... Liste |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habe ein folgendes prob.
Das Erstellen Code: [AUSKLAPPEN] Global OrdnerList:TList = New TList
Global Ordner:TOrdner Type TOrdner Field Window:Tgadget Field Canvas:Tgadget Function Create(Name:String) Ordner:TOrdner = New TOrdner Ordner.window:TGadget = CreateWindow(Name, 50, 50, 350, 450, Main_Canvas, 3) Ordner.Canvas:TGadget = CreateCanvas(0, 0, GadgetWidth(Ordner.Window), GadgetHeight(Ordner.Window), Ordner.Window) SetGadgetLayout Ordner.Canvas, 1, 1, 1, 1 EnablePolledInput(Ordner.canvas) OrdnerList.Addlast Ordner End Function End Type Das "Malen" Code: [AUSKLAPPEN] While WaitEvent()
Local tmpGadget:TGadget Select EventID() Case EVENT_TIMERTICK RedrawGadget Main_Canvas For Ordner:TOrdner = EachIn OrdnerList RedrawGadget Ordner.canvas Next Case EVENT_GADGETPAINT WindowInstanz For Ordner:TOrdner = EachIn OrdnerList SetGraphics CanvasGraphics(Ordner.canvas) Cls setcolor 0,0,0 Drawrect 0,0,gadgetwidth(Ordner.canvas),gadgetheight(Ordner.canvas) Flip Next laut dem erstellen sollte das canvas allerdings "sich vergrössern" (SetGadgetLayout Ordner.Canvas, 1, 1, 1, 1) normalerweise sollte das fenster nun komplett schwarz gemalt sein ist es auch bis zum zeitpunkt wo man es vergrössert, dan pauscht der hintergrund vom main_window bzw main_canvas durch. wie kann das?= bzw warum is das so? |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hatte das Problem auch schon und lös es seitdem immer so:
BlitzMax: [AUSKLAPPEN] Canvas=CreateCanvas(0 , 0 , 2000, 1000 , Window) ...also einfach immer eine übergroße Canvas beim Start definieren. Durch das Layout wird sie sowieso wieder auf das Window reduziert. Schon tauchen keine Zeichenfehler mehr auf. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Lobby |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke bedeutend speicherschonender dürfte es schon sein, wenn man das Canvas auch wirklich nur in der Größe erstellt, in der es benötigt wird. Das eigentliche Problem ist, dass der Viewport nicht automatisch mit angepasst wird, wenn sich die Canvasgröße nachträglich ändert. Es sollte sich also einfach beheben lassen, indem du vor dem Zeichnen den Sichtbereich per SetViewport(0,0,canvas.width,canvas.height) manuell selbst richtig setzest. | ||
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group