![]() |
Zeichnen auf schwarzem Hintergrund
Hallo allerseits,
ich lasse in meinem Programm den User auf einer Paintbox mit schwarzem Hintergrund zeichnen. Wenn der User jetzt z.B. die Farbe rot wählt (clRed) dann kommt da aber aqua raus (clAqua) Wählt der User Aqua wird rot gezeichnet. Kann man das Problem irgendwie umgehen ?? Danke ... Steve |
Re: Zeichnen auf schwarzem Hintergrund
Hi,
in was für einem Modus zeichnest Du denn? Das müsste eine Eigenschaft den Stifts sein (PenMode). Ist die vielleicht auf XOR gesetzt? Gruß Der Unwissende |
Re: Zeichnen auf schwarzem Hintergrund
Zeichnen tue ich so:
Delphi-Quellcode:
Gruss Steve
canvas.pen.style := psSolid;
canvas.pen.mode := pmNotXor; canvas.pen.width := 1; canvas.pen.color := clRed; canvas.Brush.Style := bsclear; |
Re: Zeichnen auf schwarzem Hintergrund
Versuch mal pmCopy oder wie der Stil heißt.
|
Re: Zeichnen auf schwarzem Hintergrund
Lass einfach mal die Zeile mit dem canvas.pen.mode weg, dann sollte immer die Farbe erscheinen, die Du auch verwenden möchtest. Diese XOR-Modi (auch negiert) sind hauptsächlich für das Löschen beim neu Zeichnen gedacht. Das liegt einfach daran, dass zwei gleiche XOR Operationen sich immer aufheben, also a xor b xor b = a, immer.
XOR ist immer dann 1, wenn eine Seite 1 und die andere 0 ist. Im Falle von weiß ($FF), sind alle Bits 1, eine Farbe f XOR Weiß ist also immer das Gegenteil der Farbe. Negierst Du dies noch einmal, dann zeichnest Du in der gewünschten Farbe. Zeichnest Du ein zweites Mal exakt die gleiche Form, so hebt sich dies auf. Bei Schwarz handelt es sich um das andere Extrem, dort sind alle Bits 0, Schwarz XOR eine Farbe sollte also die Farbe selbst geben. Wie Luckie schon sagte, kannst Du also entweder die Farbe kopieren (dann stimmt sie immer). MÖchtest Du eine Form aber noch in der Größe verändern (oder sonst wie), dann solltest Du es einfach mal mit
Delphi-Quellcode:
versuchen.
canvas.pen.Mode := pmXor;
|
Re: Zeichnen auf schwarzem Hintergrund
Genau das ist ja das Problem ... Ich brauch den XOR-Mode um zu "überzeichnen" und neuzeichnen.
Mann stelle sich das ungefähr so vor als wenn ich einen Rahmen mit der Maus aufziehe (z.B. im Adobe Reader wenn ich Zoom aufziehe). Gibt es keine Möglichkeit irgendwie rauszufinden welche Farbe genommen werden muss damit die richtige angezeigt wird... Gruss Steve |
Re: Zeichnen auf schwarzem Hintergrund
clAqua
Schließlich wird das negiert, und wenn du clAqua negierst kommt logischerweise clRed raus! (Steht doch oben!) |
Re: Zeichnen auf schwarzem Hintergrund
die Frage wurde doch schon vorher beantwortet!
wert1 xor Zahl = wert2 wert2 xor Zahl = wert1 |
Re: Zeichnen auf schwarzem Hintergrund
Ja ups sorry ...
Wer lesen kann ist klar im Vorteil ... :oops: Danke nochmal ... Gruss Steve |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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-2025 by Thomas Breitkreuz