AGB  ·  Datenschutz  ·  Impressum  







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

Canvas.TextOut oder Alternative

Ein Thema von langer hans · begonnen am 12. Nov 2007 · letzter Beitrag vom 12. Nov 2007
Antwort Antwort
langer hans

Registriert seit: 8. Mär 2007
Ort: Bad Nauheim
32 Beiträge
 
Delphi 6 Personal
 
#1

Canvas.TextOut oder Alternative

  Alt 12. Nov 2007, 19:25
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:
//...
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;
P.S.: Ich weiss, dass das mit der formcreate nicht so toll ist, wird auch noch geändert.

MfG
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Canvas.TextOut oder Alternative

  Alt 12. Nov 2007, 19:49
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.
  Mit Zitat antworten Zitat
langer hans

Registriert seit: 8. Mär 2007
Ort: Bad Nauheim
32 Beiträge
 
Delphi 6 Personal
 
#3

Re: Canvas.TextOut oder Alternative

  Alt 12. Nov 2007, 19:54
Hat sich erledigt!
Ich musste nur den Pen zurücksetzen

Delphi-Quellcode:
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;
Danke trotzdem

MfG
  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:10 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