![]() |
Re: [TPaintBox] - "Hintergrundfarbe" für Pen.Style
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Zitat:
Und wegen dem restlichen Text von dir: Ich kapier nicht wirklich was du willst. So wie ich das verstanden habe, willst du einfach nur eine Strichellinie auf diesem vorher auf die Paintbox gemalte Bitmap hinterlassen, mit der Bedingung, dass die Zwischenräume bei psDashDot nicht mit der Brush.Color gefüllt wird, sondern dort soll das Bitmap durchscheinen. Wenn dem wirklich so ist, dann weiss ich nicht, was dein Problem ist. Ich habe genau das mal schnell zusammengeklickt und es klappt einwandfrei wenn Brush.Style auf bsClear gesetzt wird. Schau dir den Anhang an, wenn das nicht das ist, was du suchst, dann beschreibe mir das Problem bitte nochmal genau. |
Re: [TPaintBox] - "Hintergrundfarbe" für Pen.Style
Nagut. Eigentlich wolllte ich mir weitere Bitmaps sparen, aber es lässt sich wohl nicht verhindern ;)
Und du hast alles richtig verstanden, und ich denke so wäre es auch umzusetzten. Aber eine Frage: Ich kann dennoch BitBlt benutzen, oder? Er hat ja alles gezeichnet... [edit]Okay! Es funktioniert, wenn auch umständlich :D
Delphi-Quellcode:
[/edit]
bBuffer := TBitmap.Create;
try bBuffer.Width := pbMap.Width; bBuffer.Height := pbMap.Height; BitBlt(bBuffer.Canvas.Handle, xDis, yDis, bMap.Width, bMap.Width, bMap.Canvas.Handle, 0, 0, SRCCOPY); with bBuffer.Canvas do begin Brush.Style := bsClear; Pen.Style := psDot; Pen.Color := $000000FF; MoveTo((selectRect.X * 32) + xDis, (selectRect.Y * 32) + yDis); LineTo(((selectRect.X + 1) * 32) + xDis, (selectRect.Y * 32) + yDis); LineTo(((selectRect.X + 1) * 32) + xDis, ((selectRect.Y + 1) * 32) + yDis); LineTo((selectRect.X * 32) + xDis, ((selectRect.Y + 1) * 32) + yDis); LineTo((selectRect.X * 32) + xDis, (selectRect.Y * 32) + yDis); end; BitBlt(pbMap.Canvas.Handle, 0, 0, bBuffer.Width, bBuffer.Height, bBuffer.Canvas.Handle, 0, 0, SRCCOPY) finally FreeAndNil(bBuffer); end; |
Re: [TPaintBox] - "Hintergrundfarbe" für Pen.Style
Und das läuft nicht?
Delphi-Quellcode:
BitBlt(pbMap.Canvas.Handle, xDis, yDis, bMap.Width, bMap.Width, bMap.Canvas.Handle, 0, 0, SRCCOPY);
with pbMap.Canvas do begin Brush.Style := bsClear; Pen.Style := psDot; Pen.Color := $000000FF; MoveTo((selectRect.X * 32) + xDis, (selectRect.Y * 32) + yDis); LineTo(((selectRect.X + 1) * 32) + xDis, (selectRect.Y * 32) + yDis); LineTo(((selectRect.X + 1) * 32) + xDis, ((selectRect.Y + 1) * 32) + yDis); LineTo((selectRect.X * 32) + xDis, ((selectRect.Y + 1) * 32) + yDis); LineTo((selectRect.X * 32) + xDis, (selectRect.Y * 32) + yDis); end; |
Re: [TPaintBox] - "Hintergrundfarbe" für Pen.Style
:wall: Ähm nein?
Siehe: Zitat:
|
Re: [TPaintBox] - "Hintergrundfarbe" für Pen.Style
Zitat:
Und die Quellbitmap verändere ich nicht. Ich zeichne deine Quellbitmap auf die PaintBox und dann male ich in der PaintBox die Linien und das wiederrum funktioniert mit dem von mir geposteten Code und es entspricht hierbei sogar dem Code aus meinem zuvor geposteten Beispielprogramm, wo dies auch funktioniert. Somit: Machst du noch irgendwas anderes im OnPaint der PaintBox? |
Re: [TPaintBox] - "Hintergrundfarbe" für Pen.Style
Nein.
Das war der ganze Code... Übrigens habe ich gesehen, dass du nichts auf den QuellBitMap änderst. Das wundert mich sehr, dass es funktioniert... Ich werde mir dann wohl doch deinen Code runterladen (ich dachte eigentlich, dass du es so wie ich programmiert hast...) [edit]Ha! Den Täter habe ich entlarvt ;) Ich habe (der Unterschied!) den Style im Create der Form gesetzt ;) Und so wie es aussieht scheint da BitBlt oder irgendetwas ähnliches dazwischen zufunken. :D Ich hätte mir deinen Code vorher angucken sollen...[/edit] |
Re: [TPaintBox] - "Hintergrundfarbe" für Pen.Style
[edit]wow... Ein Doppelpost :P ... sry, hatte ich übersehen...
(Wir war eh so, als hätte ich schon was geschrieben....)[/edit] |
Re: [TPaintBox] - "Hintergrundfarbe" für Pen.Style
*puh* Ich dachte schon wir bekommen das gar nicht mehr und bestehen beide auf unseren Codes das sie gehen bzw. nicht.
Gut das das geklärt ist... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz