![]() |
Canvas.TextOut oder Alternative
Hallo!
Ich zeichne in folgender unit ein Koordinatensystem und dann Zeitwerte mit Canvas.lineto. Zetzt will ich die einzelnen Werte beschriften mit den aus einer Listbox ausgelesen Werten. Canvas.TextOut sorgt aber für sprünge im Graphen.... Hat vllt. jemand eine andere Möglichkeit für die Beschriftung?
Delphi-Quellcode:
P.S.: Ich weiss, dass das mit der formcreate nicht so toll ist, wird auch noch geändert. ;)
//...
procedure TGraph.zeichnen; var i,x:integer; begin formcreate(graph); x:=120; canvas.MoveTo(20,480); for i:=0 to Zeiten.ListBox1.Items.Count-1 do begin canvas.LineTo(x,500+(-1*(strtoint(Zeiten.ListBox1.Items.Strings[i])))); //canvas.TextOut(x,strtoint(Zeiten.ListBox1.Items.Strings[i]),inttostr(500-canvas.PenPos.Y)); x:=x+100; end; end; procedure TGraph.FormCreate(Sender: TObject); begin with canvas do begin //y Achse MoveTo(20,480); lineto(20,20); lineto(10,30); moveto(20,20); lineto(30,30); //x Achse MoveTo(20,480); lineto(980,480); lineto(970,470); moveto(980,480); lineto(970,490); end; end; MfG |
Re: Canvas.TextOut oder Alternative
Was bedeutet für dich denn "Sprünge im Graphen"? Was für Sprünge? Oder meinst du den Effekt, dass der Text die Brush.Color als Hintergrundfarbe nutzt? Wenn ja, dann setze vorher Brush.Style auf bsClear.
|
Re: Canvas.TextOut oder Alternative
Hat sich erledigt!
Ich musste nur den Pen zurücksetzen
Delphi-Quellcode:
Danke trotzdem
for i:=0 to Zeiten.ListBox1.Items.Count-1 do
begin canvas.LineTo(x,500+(-1*(strtoint(Zeiten.ListBox1.Items.Strings[i])))); canvas.TextOut(x,490-(strtoint(Zeiten.ListBox1.Items.Strings[i])),inttostr(500-canvas.PenPos.Y)); canvas.MoveTo(x,500+(-1*(strtoint(Zeiten.ListBox1.Items.Strings[i])))); x:=x+100; end; MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 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