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? :wink:

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