Seite 2 von 2

Re: Polyline von der GDi32 funktioniert nicht so...

Verfasst: 22.07.2014 12:52
von funker
Hallo, guten Tag.

Warum geht dieses *DC nicht in der Procedure?
Wenn ich es in der Event oben reinpacke, funktioniert es.

Danke.
Gruss

Code: Alles auswählen

Global *DC
Global Dim poly(5)

Declare asm_polyline()

poly(0)=10
poly(1)=10
poly(2)=100
poly(3)=150
poly(4)=190
poly(5)=150

OpenWindow(0, 0, 0, 220, 220, "PolyLine", #PB_Window_SystemMenu)

Repeat
  Event = WaitWindowEvent()
  
  If Event = #PB_Event_Gadget And EventGadget() = 0 
    If EventType() = #PB_EventType_LeftButtonDown 
      asm_polyline()          
    EndIf
  EndIf 
  
   
Until Event = #PB_Event_CloseWindow


Procedure asm_polyline() 
  *DC = GetDC_(WindowID(0))
  Polyline_(*DC,poly(),3)
EndProcedure 

Re: Polyline von der GDi32 funktioniert nicht so...

Verfasst: 22.07.2014 13:01
von Kiffi
funker hat geschrieben:Warum geht dieses *DC nicht in der Procedure?
das hat eher was mit einem fehlenden Gadget zu tun:
funker hat geschrieben:

Code: Alles auswählen

 [...] If Event = #PB_Event_Gadget And EventGadget() = 0 [...]

Re: Polyline von der GDi32 funktioniert nicht so...

Verfasst: 22.07.2014 13:29
von funker
Jup, danke.

Verstehe es aber nicht, was da jetzt noch rein soll?
Die anderen vorhergehenden Programme funktionieren doch damit.

Danke.
Gruss

Re: Polyline von der GDi32 funktioniert nicht so...

Verfasst: 22.07.2014 15:37
von STARGÅTE
@funker
deine Procedure wird doch nicht aufgerufen!, was soll da also passieren:

Außerdem hast du wieder den falschen Typen verwendet.
Polyline_() verlangt ein Array mit LONGs, also muss du es auch als LONG definieren (ja auch dann wenn DU nur auf 32Bit arbeitest)

Code: Alles auswählen

Global *DC
Global Dim poly.l(5)

Declare asm_polyline()

poly(0)=10
poly(1)=10
poly(2)=100
poly(3)=150
poly(4)=190
poly(5)=150

OpenWindow(0, 0, 0, 220, 220, "PolyLine", #PB_Window_SystemMenu)
asm_polyline()     

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow


Procedure asm_polyline()
  *DC = GetDC_(WindowID(0))
  Polyline_(*DC,poly(),3)
EndProcedure 
Bitte beachte noch, dass die Linie wieder "wegraddiert" wird, wenn du das Fenster verschiebst.
Das Malen auf dem Window ist nur temporär, bitte lieber das Canvas nutzen.

Re: Polyline von der GDi32 funktioniert nicht so...

Verfasst: 22.07.2014 17:09
von funker
Jup danke.
Benutze jetzt das Canvas, ist einfacher und sicherer

Danke.
Gruss