AGB  ·  Datenschutz  ·  Impressum  







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

Diagonale Linien zeichnen

Ein Thema von Christian18 · begonnen am 26. Feb 2008 · letzter Beitrag vom 14. Mär 2008
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Diagonale Linien zeichnen

  Alt 26. Feb 2008, 17:02
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:
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;
Edit:

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
  Mit Zitat antworten Zitat
Crazy Ivan
(Gast)

n/a Beiträge
 
#2

Re: Diagonale Linien zeichnen

  Alt 26. Feb 2008, 17:26
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
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Diagonale Linien zeichnen

  Alt 27. Feb 2008, 08:01
@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...
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#4

Re: Diagonale Linien zeichnen

  Alt 3. Mär 2008, 16:42
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;
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#5

Re: Diagonale Linien zeichnen

  Alt 3. Mär 2008, 16:44
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;
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#6

Re: Diagonale Linien zeichnen

  Alt 14. Mär 2008, 15:07
Hallo,

hat keiner ne Idee woran das liegen kann?

MFG Christian18
  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 15:51 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