AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem: Canvas zeichnet nicht!

Ein Thema von Martin K · begonnen am 28. Apr 2006 · letzter Beitrag vom 28. Apr 2006
Antwort Antwort
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem: Canvas zeichnet nicht!

  Alt 28. Apr 2006, 18:39
Hi,
ich habe folgendes Problem:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Font.Color := clRed;
  Label1.Canvas.Pen.Color := clGreen;
  Label1.Canvas.MoveTo(0, 0);
  Label1.Canvas.LineTo(20, 10);
end;
Wenn ich auf den Button klicke, wird nur die Schriftfarbe rot.
Erst beim zweiten Klick auf den Button wird die grüne Linie gezeichnet.

Woran liegt das?
Wie kann ich das ändern?????
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem: Canvas zeichnet nicht!

  Alt 28. Apr 2006, 18:40
Label1.Update; ?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Problem: Canvas zeichnet nicht!

  Alt 28. Apr 2006, 18:42
Ja, super!!!

Danke, das hat geklappt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Font.Color := clRed;
  Label1.Update; // <--- hier eingefügt
  Label1.Canvas.Pen.Color := clGreen;
  Label1.Canvas.MoveTo(0, 0);
  Label1.Canvas.LineTo(20, 10);
end;
Verstanden habe ich es aber trotzdem nicht...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von R2D2
R2D2

Registriert seit: 20. Jan 2006
Ort: München
253 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Problem: Canvas zeichnet nicht!

  Alt 28. Apr 2006, 18:47
Das Label1.update bewirkt, dass Delphi das Label aktualisiert.

Desshalb wird der neue Canvas dann aufs Label geschrieben.
if then then then = else else else = then;

Meine Webseite
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Problem: Canvas zeichnet nicht!

  Alt 28. Apr 2006, 18:49
Zitat von Martin K:
Ja, super!!!
...und beim nächsten Aktualisieren des Labels ist deine schöne Zeichnung wieder weg, weil dann die Paint-Routine des Labels wieder aufgerufen wird

Sorry, aber ein Label ist nicht für das Zeichnen von außen geeignet. Dazu gibt es TImage (direktes Zeichnen möglich) oder TPaintBox (Zeichnen innerhalb der OnPaint-Behandlung). Eine weitere Alternative wäre das Ableiten einer eigenen Komponente von TGraphicControl oder TCustomControl.

Gruß Hawkeye
  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 14:48 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