Seite 1 von 3
Zeichnen in Window
Verfasst: 11.11.2025 17:17
von MacThommes
Hi.
Bin neu hier und hab direkt eine Frage:
Ich versuche auf einen Fenster was ich mit If OpenWindow..... geöffnet habe eine Linie zu zeichnen.
Gadgets etc werden angezeigt sonst funktioniert soweit auch alles prima, aber eine Linie bekomme ich nicht auf das aktuelle Fenster gezeichnet.
Code: Alles auswählen
#FENSTER_HAUPT = 1
#FLAGS = #PB_Window_SystemMenu | #PB_Window_ScreenCentered
If OpenWindow(#FENSTER_HAUPT, 0, 0, 200, 240, "Fenster Zeichnung", #FLAGS)
If StartDrawing(WindowOutput(#FENSTER_HAUPT))
Box(15, 15, 75, 75, RGB(255, 0, 0))
Circle(140, 125, 45, RGB(35, 158, 70))
;die nächsten 2D Zeichenbefehle zeichnen ein Dreieck
LineXY(62, 140, 112, 220, RGB(0, 0, 255))
LineXY(112, 220, 12, 220, RGB(0, 0, 255))
LineXY(12, 220, 62, 140, RGB(0, 0, 255))
FillArea(62, 180, RGB(0, 0, 255), RGB(0, 0, 255))
StopDrawing()
EndIf
Repeat
Ereignis.i = WaitWindowEvent()
Until Ereignis = #PB_Event_CloseWindow
EndIf
End
Bei diesem Progrämmchen z.B. erscheint lediglich ein schwarzes Fenster.
Sehr seltsam: Unter Windows kann man das Ergebnis sehen, unter MacOS 26.0.1 nicht.
Kann es sein, das da der Fehler ist?
Re: Zeichnen in Window
Verfasst: 11.11.2025 17:50
von Axolotl
Auch unter Windows solltest Du das direkte Zeichnen auf dem Bildschirm nach einem Paint-Event durchführen.
Sonst bleibt das Fenster irgendwann leer.
Generell ist es besser ein Gadget zu verwenden, da die Rekonstruktion dann vom Gadget übernommen wird.
Geeignet wären hier ImageGadget oder CanvasGadget, abhängig davon wohin die Reise gehen soll.
Hier mal die notwendigen Änderungen: (Einrückungen sind auf jeden Fall hilfreich für das Lesen.)
Code: Alles auswählen
#FENSTER_HAUPT = 1
#FLAGS = #PB_Window_SystemMenu | #PB_Window_ScreenCentered
If OpenWindow(#FENSTER_HAUPT, 0, 0, 200, 240, "Fenster Zeichnung", #FLAGS)
Repeat
Ereignis.i = WaitWindowEvent()
If Ereignis = #PB_Event_Repaint
If StartDrawing(WindowOutput(#FENSTER_HAUPT))
Box(15, 15, 75, 75, RGB(255, 0, 0))
Circle(140, 125, 45, RGB(35, 158, 70))
;die nächsten 2D Zeichenbefehle zeichnen ein Dreieck
LineXY(62, 140, 112, 220, RGB(0, 0, 255))
LineXY(112, 220, 12, 220, RGB(0, 0, 255))
LineXY(12, 220, 62, 140, RGB(0, 0, 255))
FillArea(62, 180, RGB(0, 0, 255), RGB(0, 0, 255))
StopDrawing()
EndIf
EndIf
Until Ereignis = #PB_Event_CloseWindow
EndIf
End
Re: Zeichnen in Window
Verfasst: 11.11.2025 20:01
von MacThommes
Danke erst mal für die schnelle Antwort.
Ja, warum er die Einrückungen hier weggenommen hat, weiß ich nicht. Beim Original sind die natürlich da....
Ich habe oben geschrieben, das es unter Windows funktioniert.
Mein Problem ist, das es unter MacOS nicht funktioniert.
Dein Code ergibt auf dem Mac folgendes:
Ein leeres schwarzes Fenster....
Re: Zeichnen in Window
Verfasst: 11.11.2025 22:04
von jogo
nur zur Info, bei mir (Linux) läuft das Beispiel von Axolotl so, wie es soll. Ich sehe 3 geometrische Figuren. Scheint also ein spezielles Mac-Problem zu sein. In der Hilfe sind allerdings keine Hinweise darauf zu finden..
Re: Zeichnen in Window
Verfasst: 11.11.2025 22:19
von Kiffi
MacThommes hat geschrieben: 11.11.2025 20:01Dein Code ergibt auf dem Mac folgendes:
Ein leeres schwarzes Fenster....
bei mir (Mac Mini M4 Tahoe) ist es ein leeres weißes Fenster.
Re: Zeichnen in Window
Verfasst: 11.11.2025 22:25
von MacThommes
Ich denke es scheint ein Bug zu sein?
Zu Linux:
Ich habe es nicht geschafft PureBasic unter Linux zu installieren.
Vielleicht hat da ja jemand eine funktionierende (!) Anleitung, wie man das unter Linux Mint installiert bekommt.
Bin etwas geknickt, das es schon die ersten Probleme gibt.
Habe viele Jahre mit BlitzBasic auf dem Amiga und danach unter Windows.
Anfangs zu meiner Zeit mit dem ersten Mac (2003) konnte ich auch noch mit BlitzBasic programmieren.
Dann habe ich mich sehr gefreut, als ich von PureBasic gehört habe.
Kurz reingeschaut und begeistert die Vollversion bezahlt.
Re: Zeichnen in Window
Verfasst: 11.11.2025 22:39
von jogo
MacThommes hat geschrieben: 11.11.2025 22:25
Ich habe es nicht geschafft PureBasic unter Linux zu installieren.
In der Linux-Rubrik ist ganz oben eine Anleitung zur Installation. Bin aber nicht sicher, ob da vllt. schon Abweichungen gibt, weil von 2010.
Ansonsten stehen in der Datei INSTALL allle erforderlichen Schritte drin. Ich gehe dort die Punkte einfach durch.
Wo hakt es denn bei der Installation genau? Und welches Linux hast du?
Ist aber hier in diesem Thread etwas OT - vllt. machst du dafür einfach ein neues Thema auf

Re: Zeichnen in Window
Verfasst: 11.11.2025 22:42
von TroaX
Eine Anleitung liegt dem Archiv für Linux bei. Optimiert ist diese für Ubuntu. Funktioniert aber zuminest meinder Beobachtung nach auf allen Debian-Distros. Ich nutze Mint.
Unter Linux funktioniert der Code von Axolotl. Bei deinem Code aus dem ersten Beitrag bekomme ich nur ein leeres Fenster.
Re: Zeichnen in Window
Verfasst: 11.11.2025 23:00
von Kiffi
um zurück zum Thema zu kommen: So sähe es mit einem ImageGadget aus:
Code: Alles auswählen
#FENSTER_HAUPT = 1
#FLAGS = #PB_Window_SystemMenu | #PB_Window_ScreenCentered
If OpenWindow(#FENSTER_HAUPT, 0, 0, 200, 240, "Fenster Zeichnung", #FLAGS)
If CreateImage(0, 200, 240) And StartDrawing(ImageOutput(0))
Box(15, 15, 75, 75, RGB(255, 0, 0))
Circle(140, 125, 45, RGB(35, 158, 70))
;die nächsten 2D Zeichenbefehle zeichnen ein Dreieck
LineXY(62, 140, 112, 220, RGB(0, 0, 255))
LineXY(112, 220, 12, 220, RGB(0, 0, 255))
LineXY(12, 220, 62, 140, RGB(0, 0, 255))
FillArea(62, 180, RGB(0, 0, 255), RGB(0, 0, 255))
StopDrawing()
ImageGadget(0, 0, 0, 200, 240, ImageID(0))
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
EndIf
Re: Zeichnen in Window
Verfasst: 12.11.2025 09:31
von MacThommes
Na, hier ist ja echt was los....
Sehr positiv!
Also, mit der Installation, werde ich am Nachmittag mal ein neues Thema aufmachen.
Die original Anleitung funktioniert nicht.
Nochmal zu dem ersten Problem:
Auch der Code von Axolotl ergibt bei mir ein leeres Fenster.