Entwickler-Ecke
Multimedia / Grafik - Hatch Brush, wie ein schraffiertes Rechteck zeichnen?
ibh_compucat - Do 22.04.10 18:22
Titel: Hatch Brush, wie ein schraffiertes Rechteck zeichnen?
Hallo Freunde,
ich möchte ein (oder mehrere) schraffiertes Rechteck auf einen Canvas zeichnen und kämpfe nun schon seit mehreren Tagen, kann mir jemand helfen?
Der folgende Quelltext erzeugt zwar keine Fehlermeldungen - aber es zeigt sich auch keine Wirkung!
Delphi-Quelltext
1: 2: 3: 4:
| c := clLime; hb := CreateHatchBrush(HS_BDIAGONAL, c); rectangle(Form3.Canvas.Handle,1500,YPOS + YOffset, Breite-30, YPOS+YOffset+Zeilenabstand); SelectObject(Form3.Canvas.Handle, hb); |
schöne Grüße ibh_compucat
DonManfred - Fr 23.04.10 11:01
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| img.canvas.Pen.Color := clBlack; img.canvas.Pen.Width := 1; img.canvas.Pen.Style := psSolid;
img.Canvas.Brush.Style := bsBDiagonal; img.Canvas.Brush.Color := clRed; img.Canvas.Rectangle( pos_x , pos_y, w, h); |
Martok - Fr 23.04.10 13:25
Und um noch den WinApi-Codeschnipsel vom OP zu behandeln:
Man müsste schon erst den Brush Selecten und dann erst zeichnen... Zusammen mit etwas Resourcenverwaltung ergibt das:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var c: TColor; hb: HBRUSH; oldo: HGDIOBJ; begin c := clLime; hb := CreateHatchBrush(HS_BDIAGONAL, c); oldo:= SelectObject(Canvas.Handle, hb); try rectangle(Canvas.Handle,1500,YPOS + YOffset, Breite-30, YPOS+YOffset+Zeilenabstand); finally SelectObject(Canvas.Handle, oldo); DeleteObject(hb); end; end; |
Auch wenn ja der Grund, warum man Delphi nutzt ist, dass man das nicht selbst machen will, und deswegen den Code von
DonManfred nimmt ;)
ibh_compucat - Fr 23.04.10 13:55
vielen Dank für eure Antworten,
@DonManfred: die Rechtecke wurden an der gewünschten Stelle gezeichnet, aber die Schraffur blieb aus.
@Martok: perfekt, so sollte es sein.
Nochmals vielen Dank an Euch.
ibh_compucat
DonManfred - Fr 23.04.10 15:48
ibh_compucat hat folgendes geschrieben : |
@DonManfred: die Rechtecke wurden an der gewünschten Stelle gezeichnet, aber die Schraffur blieb aus.
|
Hmm, bei mir klappt es und ich denke ich habe nichts vergessen zu Posten... Ich benutze img ist in meinem Fall ein TImage, vielleicht liegt es daran (hab mit Grafikerstellung unter Delphi nicht sooo viel Erfahrung)...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!