Seite 1 von 2
WindowCallback für 2D-Zeichnungen?
Verfasst: 12.09.2005 19:09
von Delle
Code: Alles auswählen
Window...
StartDrawing(WindowOutput()):DrawingMode(4):Box(9,61,107,157,RGB(0,0,123)):StopDrawing()
Repeat
EventID = WaitWindowEvent()
If EventID=#PB_Event_CloseWindow:End:EndIf
Forever
Sobald man das Fenster verkleinert und wieder groß macht, ist die Box weg... bei dem 2D-Draw-Beispiel bleiben die Sachen aber stehen...
Muss da in die Schleife noch ein Callback oder sowas?
Verfasst: 12.09.2005 20:06
von NicTheQuick
Wenn du mittels [c]WindowOutput()[/c] aufs Fenster malen willst, musst
du dir natürlich einen Callback anfertigen, der die Bilddaten immer wieder
auffrischt, wenn ein Fenster darüber verschoben wurde oder ähnliches.
Einfacher geht es allerdings mit einem [c]ImageGadget()[/c]
Verfasst: 12.09.2005 20:23
von Delle
Hm, hab schon einen Callback drin für PURECOLOR... wie muss der aussehen, damit er "neutral" für das ganze Fenster gilt?
Verfasst: 12.09.2005 20:54
von vonTurnundTaxis
NicTheQuick hat geschrieben:Einfacher geht es allerdings mit einem [c]ImageGadget()[/c]
Einfacher und besser.
Verfasst: 12.09.2005 21:03
von Delle
Also nur einen Rahmen als Bild?
Verfasst: 12.09.2005 21:10
von vonTurnundTaxis
Wie meinen?
Ein ImageGadget kann doch Images anzeigen.
Und auf Images kannst du problemlos zeichnen.
(Dann darf man aber nicht vergessen, das ImageGadget mit SetGadgetState(ImageID) zu aktualisieren.)
Verfasst: 12.09.2005 21:17
von Delle
Das funzt auch wieder nicht... der Rand soll für ein ListIconGadget sein,
jetzt wird der Rahmen zwar schön aktualisiert, dafür verschwindet das ListIconGadget darüber
Code: Alles auswählen
...
ImageGadget(#listrand,9,61,107,157,Rand)
ListIconGadget(#liste,8,60,130,160,"",110)
Repeat
SetGadgetState(#listrand,Rand)
Forever
Verfasst: 12.09.2005 21:17
von nco2k
am meisten lernt man immernoch aus beispielcodes:
Code: Alles auswählen
#Width = 640
#Height = 480
If OpenWindow(0, 0, 0, #Width, #Height, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Test")
If CreateGadgetList(WindowID(0))
If CreateImage(0, #Width, #Height)
If StartDrawing(ImageOutput())
For i = 0 To 1000
Box(Random(#Width), Random(#Height), Random(#Width), Random(#Height), RGB(Random(255), Random(255), Random(255)))
Next
StopDrawing()
ImageGadget(0, 0, 0, #Width, #Height, ImageID())
Repeat
WinEvent.l = WaitWindowEvent()
Until WinEvent = #PB_Event_CloseWindow
EndIf
EndIf
EndIf
EndIf
End
hoffe es hilft.
c ya,
nco2k
Verfasst: 12.09.2005 21:28
von Delle
Prinzip verstanden, nur wiegesagt lassen sich die Inhalt des Gadgets darüber dann nicht mehr anklicken .-(
Verfasst: 12.09.2005 21:38
von Delle
Zeigt alles korrekt an, Items leider nicht anklickbar:
Code: Alles auswählen
ImageGadget(#listrand,9,61,107,157,Rand)
ListIconGadget(#liste,8,60,130,160,"",110)
Items anklickbar, nach Minimize allerdings fehlt das LIG:
Code: Alles auswählen
ListIconGadget(#liste,8,60,130,160,"",110)
ImageGadget(#listrand,9,61,107,157,Rand)