Entwickler-Ecke
Multimedia / Grafik - linie
axja - Mo 17.03.03 21:06
Titel: linie
gibt es in delphi die möglichkeit eine ganz primitive linie zu zeichnen? von einem punkt zu dem anderen? am besten noch in verschiedenen farben?
tommie-lie - Mo 17.03.03 21:13
kommt drauf an, worauf du zeichnen willst.
Einige Komponenten haben einen Canvas, auf den kann man malen. Such mal in der Hilfe nach Canvas, da findest du dann alles wichtige. PenPos und LineTo dürften interessant für dich sein. Pen und Brush sind für die Farben auch noch wichtig. Irgendwo hab' ich sogar mal eine Benutzung des kompletten Desktops (im Gegensatz zu einzelnen Komponenten wie der eigenen Form oder einem TImage) als Canvas gesehen, weiß aber nicht mehr wo.
Tomac - Mo 17.03.03 21:15
das geht mit der TImage Komponente
Quelltext
1: 2: 3: 4:
| image1.canvas.brush.color:=clblue; image1.canvas.pen.color:=clred; image1.canvas.moveto(10,10); image1.canvas.lineto(100,100); |
dieser Code zeichnet eine diagonale rote Linie auf blauem Hintergrund.
mfG
Tomac
tommie-lie - Mo 17.03.03 21:27
Ich habe doch gesagt, es kommt auf den Zweck drauf an.
Wenn ein oder zwei Linien reichen, braucht man kein TImage, weil die Form auch schon einen Canvas hat.
MathiasH - Mo 17.03.03 21:29
Lo
nicht ganz tomac, damit malst du zwar die rote Linie, aber am Hintergrund ändert sich nichts 8) , du veränderst nur die Farbe des pinsels, um den Hintergrund auchnoch zu ändern müsste man beispielsweise ein Rechteck mit deisem Brush malen!!!
IO-sys/MathiasH
Raphael O. - Mo 17.03.03 22:03
stimmt nicht...
probiers doch aus:
mit
Quelltext
1: 2:
| canvas.moveto(x,y); canvas.lineto(x2,y2); |
zeichnet man eine linie ;)
Raphael O. - Mo 17.03.03 22:07
sorry mein Fehler @MathiasH
Tomac - Di 18.03.03 15:16
hast recht, sry, hab in der Eile wohl drauf vergessen.
tommie-lie - Di 18.03.03 15:36
axja? Gibt's auch Rückmeldung? Hat das jetzt geklappt mit dem Canvas, oder hast du was ganz anderes vor?
Tomac - Di 18.03.03 15:41
Linien mit der Maus zeichnen geht so:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| var Form1: TForm1; x_Anfang, x_Ende, y_Anfang, y_Ende:integer; zeichnen: boolean;
{...}
procedure TForm1.FormCreate(Sender: TObject); begin doublebuffered:=true; Image1.canvas.pen.mode:=pmNotXor; {dadurch erreicht man die Gummilinie!} Image1.canvas.pen.style:=pssolid; Image1.canvas.brush.style:=bsclear; end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin x_anfang:=x; y_anfang:=y; x_ende:=x; y_ende:=y; zeichnen:=true; end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if zeichnen then with Image1.Canvas do begin moveto(x_anfang,y_anfang); lineto(x_ende,y_ende); x_ende:=x; y_ende:=y; moveto(x_anfang,y_anfang); lineto(x_ende,y_ende); end; end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin zeichnen:=false; end; |
mfG
EDIT: tommie_lie du bist immer ein bisschen schneller als ich :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!