AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zeichnen auf schwarzem Hintergrund
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichnen auf schwarzem Hintergrund

Ein Thema von burn · begonnen am 16. Jul 2007 · letzter Beitrag vom 17. Jul 2007
Antwort Antwort
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#1

Zeichnen auf schwarzem Hintergrund

  Alt 16. Jul 2007, 16:51
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
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Zeichnen auf schwarzem Hintergrund

  Alt 16. Jul 2007, 16:55
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
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#3

Re: Zeichnen auf schwarzem Hintergrund

  Alt 16. Jul 2007, 16:57
Zeichnen tue ich so:

Delphi-Quellcode:
canvas.pen.style := psSolid;
canvas.pen.mode := pmNotXor;
canvas.pen.width := 1;
canvas.pen.color := clRed;
canvas.Brush.Style := bsclear;
Gruss Steve
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Zeichnen auf schwarzem Hintergrund

  Alt 16. Jul 2007, 17:05
Versuch mal pmCopy oder wie der Stil heißt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#5

Re: Zeichnen auf schwarzem Hintergrund

  Alt 16. Jul 2007, 17:30
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

canvas.pen.Mode := pmXor; versuchen.
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#6

Re: Zeichnen auf schwarzem Hintergrund

  Alt 17. Jul 2007, 09:15
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
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Zeichnen auf schwarzem Hintergrund

  Alt 17. Jul 2007, 09:20
clAqua

Schließlich wird das negiert, und wenn du clAqua negierst kommt logischerweise clRed raus! (Steht doch oben!)
Richard Mahr
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Zeichnen auf schwarzem Hintergrund

  Alt 17. Jul 2007, 09:21
die Frage wurde doch schon vorher beantwortet!
wert1 xor Zahl = wert2
wert2 xor Zahl = wert1
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#9

Re: Zeichnen auf schwarzem Hintergrund

  Alt 17. Jul 2007, 13:04
Ja ups sorry ...

Wer lesen kann ist klar im Vorteil ...

Danke nochmal ...

Gruss Steve
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz