AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit 'Struktur-Prozedur'

Ein Thema von julianjetter · begonnen am 23. Nov 2003 · letzter Beitrag vom 24. Nov 2003
Antwort Antwort
julianjetter

Registriert seit: 2. Jul 2003
3 Beiträge
 
#1

Problem mit 'Struktur-Prozedur'

  Alt 23. Nov 2003, 23:14
Hallo!
Ich habe ein kleines Problem beim Benutzen der folgenden Prozedur.
Sie soll theoretisch das Formular strukturieren. Das klappt auch ganz gut, nur wird es in horionzontaler Richtung bis zur Formularmitte ausgeführt, ab dann gibt es nur Streifen nach rechts. Am besten selbst mal ausprobieren
Form1.Width in Form1.Width*2 zu Ändern liefert zwar das korrekte Resultat, aber das muss sich doch auch anders beheben lassen...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var color: array[0..2] of dword;
    row,col: integer;
begin
  color[0] := $00CCCCCC;
  color[1] := $00999999;
  color[2] := $00666666;
  Randomize;
  Canvas.MoveTo(0,0);
  for col:=0 to Form1.Height do begin
    for row:=0 to Form1.Width do begin
      Canvas.Pen.Color := color[random(2)];
      Canvas.LineTo(row,col);
    end;
  end;
end;
MfG Julian Jetter
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit 'Struktur-Prozedur'

  Alt 23. Nov 2003, 23:37
Moin Julian,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Erklären kann ich mir den Effekt im Moment nicht.
Es muss übrigens Random(3) heissen, damit alle drei Tabelleneinträge benutzt werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#3

Re: Problem mit 'Struktur-Prozedur'

  Alt 23. Nov 2003, 23:40
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var color: array[0..2] of dword;
    row,col: integer;
begin
  color[0] := $00CCCCCC;
  color[1] := $00999999;
  color[2] := $00666666;
  Randomize;
  Canvas.MoveTo(0,0);
  col:=0;
  for col:=0 to Form1.Height do begin
    for row:=0 to Form1.Width do begin
      {Canvas.Pen.Color := color[random(2)];
      Canvas.LineTo(row,col);}

      Canvas.Pixels[row,col] := color[random(3)];
    end;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Problem mit 'Struktur-Prozedur'

  Alt 24. Nov 2003, 01:38
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif.

Es ist schon klar, dass das halbe Bild mit Linien überseht ist.
Du zeichnest doch mit Linien (LineTo). Da beim Sprung zur nächsten Zeile ja von einem Ende des Bildes (Canvas rechts) zum anderen Ende (Canvas links) eine Linie über das Bild gezeichnet wird, welche ja eine Zeile runterspringt, also zur Hälfte auf der 1. Zeile und zur anderen Hälfte auf der 2. Zeile verläuft.

http://www.FrankNStein.de/FehlerbeimZeichnen.jpeg
(1. Zeile zeichnen / Sprung zur nächsten Zeile / 2. Zeile zeichnen)

Demnach hat scp schon eine gute Lösung gegeben. Allerdings ist das noch zuviel:
Delphi-Quellcode:
  Canvas.MoveTo(0,0);
  col:=0;
Der Form halber sollte Color auch noch als TColor deklariert werden.

Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
  Var Color: Array[0..2] of TColor;
    Row, Col: Integer;

  Begin
    Color[0] := $00CCCCCC;
    Color[1] := $00999999;
    Color[2] := $00666666;
    Randomize;
    For Col := 0 to Form1.Height - 1 do
      For Row := 0 to Form1.Width - 1 do
        Canvas.Pixels[Row, Col] := Color[Random(3)];
  End;
Und dann noch Color als Konstante:
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
  Const Color: Array[0..2] of TColor = ($00CCCCCC, $00999999, $00666666);

  Var Row, Col: Integer;

  Begin
    Randomize;
    For Col := 0 to Form1.Height - 1 do
      For Row := 0 to Form1.Width - 1 do
        Canvas.Pixels[Row, Col] := Color[Random(3)];
  End;

http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
$2B or not $2B
  Mit Zitat antworten Zitat
julianjetter

Registriert seit: 2. Jul 2003
3 Beiträge
 
#5

Re: Problem mit 'Struktur-Prozedur'

  Alt 24. Nov 2003, 06:38
Nun funktioniert's. Vielen Dank!
TColor als Konstante geht aber nicht => Die Farben sollten später aus einer Datei kommen.

MfG Julian Jetter

BTW: Aufgrund der Bilder von Hitmitsu leuchtet mir der Fehler auch ein, der das eigentliche Problem war!
  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 21:30 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