AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Zeichnen auf Canvas und ZOrder bzw. Übermalen
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichnen auf Canvas und ZOrder bzw. Übermalen

Ein Thema von EWeiss · begonnen am 2. Apr 2015 · letzter Beitrag vom 2. Apr 2015
Antwort Antwort
Seite 3 von 3     123   
Popov
(Gast)

n/a Beiträge
 
#21

AW: Zeichnen auf Canvas und ZOrder bzw. Übermalen

  Alt 2. Apr 2015, 14:10
Geht wohl nicht mit Boardmitteln...
Das ist wie mit Ockhams Rasiermesser: "Von mehreren möglichen Erklärungen desselben Sachverhalts ist die einfachste Theorie allen anderen vorzuziehen." Letztendlich stellte sich nie wirklich die Frage wo das Problem liegt, denn es konnte nur Pen.Mode sein. Pen.Mode macht so einen Sch...

Der Bösewicht findet sich in der Prozedur PrepareScale:
Delphi-Quellcode:
procedure TGraph.PrepareScale;
var
  gray: Integer;
begin
...
  // Koordinatenkreuz
  Image.Canvas.Pen.Mode := pmNotXor; //<<<--- hier
  Image.Canvas.MoveTo(xxc(xMin), yyc(0));
  Image.Canvas.LineTo(xxc(xMax), yyc(0));
...
Einmal eingestellt beleibt es über Prozeduren bestehen.


//EDIT:

Sorry, hab deinen letzten Beitrag #20 vor meinem Beitrag nicht gelesen. Anscheinend hast du schon selbst das Problem gefunden.
Zitat:
Aber würde mich trotzdem nochmal interessieren warum Pen.Mode und bsClear sich im Wege stehen...
Tun sie nicht. Zuerst mal, pmMergeNotPen war nur eine Möglichkeit, der Hinweis war, dass es Pen.Mode sein muss. Was Pen.Mode angeht, so hat er im Grunde keine Auswirkung auf bsClear. bsClear entscheidet ob ein Objekt eine Füllung hat oder nicht (oder Muster). Hat es keine Füllung, gilt im Objekt der alte Hintergrund. Aber das weißt du ja. Somit hat Pen.Mode keinen Einfluss auf Brush, er richtet sich einfach nach dem was im Hintergrund ist. Standardmäßig ist pmCopy eingestellt. Mit pmCopy zeichnet Pen mit der eingestellten Color Farbe. Ist pmBlack eingestellt, wird immer schwarz gezeichnet. Bei pmNotXor wird eine Farbe genommen die weder Pen Farbe ist, noch im Hintergrund vorkommt. Pen prüft also bevor es zeichnet die Farbe des Hintergrudes.

Also, Pen.Mode hat mit bsClear nichts zu tun.

Geändert von Popov ( 2. Apr 2015 um 14:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#22

AW: Zeichnen auf Canvas und ZOrder bzw. Übermalen

  Alt 2. Apr 2015, 14:38
Einmal am Canvas zuviel rumgespielt und schon geht es in die Hose.

Um solche unliebsamen Überraschungen zu vermeiden gibt es Delphi-Referenz durchsuchenTRecall bzw. auch die konkreten Ableitungen für
Delphi-Quellcode:
procedure DoSomething( ACanvas : TCanvas );
var
  LPenRecall : TPenRecall;
begin
  LPenRecall := TPenRecall.Create( ACanvas.Pen );
  try

    ACanvas.Pen. // nach Belieben Pen verändern

  finally
    LPenRecall.Free; // Danach ist ACanvas.Pen wieder wie vorher
  end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#23

AW: Zeichnen auf Canvas und ZOrder bzw. Übermalen

  Alt 2. Apr 2015, 14:47
Um solche unliebsamen Überraschungen zu vermeiden gibt es Delphi-Referenz durchsuchenTRecall bzw. auch die konkreten Ableitungen für
Danke für den Tipp. Ist ein guter Tipp, aber wo warst du vor eine Woche als ich es brauchte?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#24

AW: Zeichnen auf Canvas und ZOrder bzw. Übermalen

  Alt 2. Apr 2015, 14:56
Um solche unliebsamen Überraschungen zu vermeiden gibt es Delphi-Referenz durchsuchenTRecall bzw. auch die konkreten Ableitungen für
Danke für den Tipp. Ist ein guter Tipp, aber wo warst du vor eine Woche als ich es brauchte?
Ich will mich ja nicht ständig wiederholen
http://www.delphipraxis.net/1256199-post3.html
http://www.delphipraxis.net/1288015-post5.html
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#25

AW: Zeichnen auf Canvas und ZOrder bzw. Übermalen

  Alt 2. Apr 2015, 14:58
Na ja, ich lese auch nicht alles hier.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#26

AW: Zeichnen auf Canvas und ZOrder bzw. Übermalen

  Alt 2. Apr 2015, 15:07
Einmal am Canvas zuviel rumgespielt und schon geht es in die Hose.

Um solche unliebsamen Überraschungen zu vermeiden gibt es Delphi-Referenz durchsuchenTRecall
Ja, oder MSDN-Library durchsuchenSaveDC/MSDN-Library durchsuchenRestoreDC, wenn's auch um MapMode und so geht.
Uli Gerhardt
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#27

AW: Zeichnen auf Canvas und ZOrder bzw. Übermalen

  Alt 2. Apr 2015, 18:33
Danke für eure Mithilfe.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 16:52 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