![]() |
Diagonale Linien zeichnen
Hallo,
ich bin gerade dabei mir meinen Hintergrund von der Form ein bisschen zu verschönern. Dazu wollte ich einfach nur Diagonale Linien zeichnen. Die Farbe soll immer abwechseln. Dazu hatte ich mir übergegt, dass es ein bisschen schneller geht die Hintergrundfarbe zu setzen und dann nur jede zweite linie zu zeichnen. aber leider bekomme ich das nicht hin. Könnt ihr mir ein paar Tips geben? So geht es leider nicht.
Delphi-Quellcode:
Edit:
procedure TForm1.FormPaint(Sender: TObject);
var x : Integer; begin Form1.Color:=clWhite; for x:=0 to Form1.ClientWidth div 2 do begin Form1.Canvas.MoveTo(x * 2, 0); Form1.Canvas.LineTo(Form1.ClientWidth, Form1.ClientHeight - x * 2); end; end; Mhhh... ich glaube ich habe den Fehler gefunden. Es wird ja nur der Winkel von 45 Grad eingehalten, wenn das Fenster ein Quadrat ist. MFG Christian18 |
Re: Diagonale Linien zeichnen
Delphi-Quellcode:
procedure TForm4.FormCreate(Sender: TObject);
begin form1.color := // Deine Farbe 1 form1.canvas.pen.color := // Deine Frabe 2 end; // ********************************************* procedure TForm4.Button1Click(Sender: TObject); var i,j:word; begin with form4.canvas do begin i := 1; j := 1; repeat moveto(0,j*2); lineto(i*2,0); inc(i,2); inc(j,2); until (i > form4.Height) and (j > form4.Width); end; end; ist aber nur für ca. die hälfte des formulars, den rest musst du schon selber schreiben ;) [edit] sollte jetzt ganz funktionieren, mein fehler sry ;) |
Re: Diagonale Linien zeichnen
@Christian & @Crazy Ivan: Werft bitte bei euren beiden Codes alle "Form1." raus. Diese sind schlechter Stil und beschert euch später Fehlverhalten wo man es nicht vermutet. Also gar nicht erst angewöhnen.
@Crazy Ivan: Dein Code greift einmal auf Form1 und andermal auf Form4 zu - was denn nun? Aber mit dem entfernen von Form1. und Form4. (da es eh Blödsinn ist), würde der Code klappen. Ist gleich ein gutes Beispiel wo solche unnötigen Angaben zu falschen Ergebnissen führt... |
Re: Diagonale Linien zeichnen
Hallo,
warum wird oben nicht bis null gezeichnet? Ich habe die Methode nochmal ein bisschen abgewandelt:
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
var i : Word; // Schleifenvariable begin Form1.Color:=clBlack; Form1.Canvas.Pen.Color:=clRed; i:=0; while (i < Form1.ClientHeight) or (i < Form1.ClientWidth) do begin Form1.Canvas.MoveTo(0, i * 2); Form1.Canvas.LineTo(i * 2, 0); Inc(i, 2); end; end; |
Re: Diagonale Linien zeichnen
Hallo,
warum wird oben nicht bis null gezeichnet? Ich habe die Methode nochmal ein bisschen abgewandelt:
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
var i : Word; // Schleifenvariable begin Form1.Color:=clBlack; Form1.Canvas.Pen.Color:=clRed; i:=0; while (i < Form1.ClientHeight) or (i < Form1.ClientWidth) do begin Form1.Canvas.MoveTo(0, i * 2); Form1.Canvas.LineTo(i * 2, 0); Inc(i, 2); end; end; |
Re: Diagonale Linien zeichnen
Hallo,
hat keiner ne Idee woran das liegen kann? MFG Christian18 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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