Seite 1 von 1
Linie zeichnen
Verfasst: So, 06. Mai 2018 16:27
von saul
Hallo,
Code: Alles auswählen
oXbp1 := XbpStatic():new( drawingArea, , {8,40}, {Rahmenbreite ,Fensterhoehe-90} )
oXbp1:caption := "Neuanlage"
oXbp1:clipSiblings := .T.
oXbp1:type := XBPSTATIC_TYPE_GROUPBOX
oXbp1:create()
GraLine( oxbp1 , {10,10}, {10,10} )
Ich möchte in die Static Area oXBp1 eine horizontale Linie ziehen. Bei diesem Code bekomme ich aber eine Fehlermeldung
Interne Datenstrukturen beschädigt
Wo liegt mein Fehler?
mfg
Wolfgang
Re: Linie zeichnen
Verfasst: So, 06. Mai 2018 17:42
von Tom
Wo liegt mein Fehler?
Tja. Wo soll man da anfangen?
Kurz gesagt: Das geht so nicht. Die GRA-Engine erwartet einen Presentation Space als Zeichenfläche, aber Du übergibst ein ganzes XpPart. Du musst Ownerdrawing verwenden, dann kannst Du auch z.B. eine Linie zeichnen und den Rest vom Betriebssystem malen lassen. Dafür muss die DrawMode-Eigenschaft des Buttons entsprechend belegt werden, dann muss eine Methode oder Funktion geschrieben werden, die in bestimmten Situationen (Button komplett zeichnen, Vordergrund/Hintergrund zeichnen, in bestimmten Zuständen zeichnen) aufgerufen wird. Die bekommt auch den PS als Parameter. Und da geht es dann auch.
Re: Linie zeichnen
Verfasst: So, 06. Mai 2018 18:40
von Werner_Bayern
Servus Wolfgang,
oder direkt auf der DrawingArea mittels eines Statics:
Code: Alles auswählen
oXbp := XbpStatic():new( drawingArea, , {1, nY}, {drawingArea:currentsize()[1] -2, 0})
oXbp:type := XBPSTATIC_TYPE_RECESSEDLINE
oXbp:create()
Re: Linie zeichnen
Verfasst: Mo, 07. Mai 2018 0:18
von AUGE_OHR
Werner_Bayern hat geschrieben: ↑So, 06. Mai 2018 18:40
Code: Alles auswählen
oXbp := XbpStatic():new( drawingArea, , {1, nY}, {drawingArea:currentsize()[1] -2, 0})
oXbp:type := XBPSTATIC_TYPE_RECESSEDLINE
oXbp:create()
sollte die XbpStatic nicht wenigsten 1 Pixel Höhe haben oder geht es wegen dem o:Type auch so
Re: Linie zeichnen
Verfasst: Mo, 07. Mai 2018 22:47
von Werner_Bayern
Servus Jimmy,
bei mir funktioniert es so.
Re: Linie zeichnen
Verfasst: Di, 08. Mai 2018 6:54
von saul
Hallo,
funktioniert bei mir auch. Danke
Wolfgang