Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Brauche Hilfe bei einer Übung (https://www.delphipraxis.net/180115-brauche-hilfe-bei-einer-uebung.html)

Popov 24. Apr 2014 00:14

AW: Brauche Hilfe bei einer Übung
 
Zitat:

Zitat von nadery (Beitrag 1256715)
Hast du eine Lösung für das Problem?^^

Aviator hat schon ein Teil der Lösung genannt, man sollte X und Y nicht vertauschen:
Delphi-Quellcode:
  for ay:=1 to 9 do
    begin
      moveto(Round(92+(1-1)*61.7), Round(0 + (ay-1)*33)); // ?89
      lineto(Round(92+(9-1)*61.7), Round(0 + (ay-1)*33)); // ?89
    end;

Perlsau 24. Apr 2014 00:14

AW: Brauche Hilfe bei einer Übung
 
Crossposts sollte man als solche kennzeichnen, damit hilfsbereite User sich darüber orientieren können, welche Lösungsvorschläge bereits offeriert wurden.

Im Übrigen erhältst du hier letztlich dieselben Hinweise wie im Delphi-Treff. Das Problem liegt also nicht am jeweiligen Forum bzw. den hilfsbereiten Usern, sondern vielmehr an deinen mangelhaften Delphi-Kenntnissen.

Dejan Vu 24. Apr 2014 07:50

AW: Brauche Hilfe bei einer Übung
 
Zitat:

Zitat von Perlsau (Beitrag 1256718)
...sondern vielmehr an deinen mangelhaften Delphi-Kenntnissen.

Oder der Beratungsresistenz.

Blup 24. Apr 2014 08:30

AW: Brauche Hilfe bei einer Übung
 
Nehmen wir doch den ursprünglichen Quellcode auseinander, dann wird vieleicht besser verständlich was falsch ist:
Delphi-Quellcode:
  //Striche x-Achse

  for ax := 1 to 9 do
  begin
    x := Round(92 + (ax - 1) * 61.7); // wird berechnet
    y0 := 0;                          // ist konstant
    y1 := 321;                        // ist konstant
    moveto(x, y0);
    lineto(x, y1);
  end;

  //Striche y-Achse

  for ay := 1 to 9 do
  begin
    y := 89;                         // falsch, muss berechnet werden!
    x0 := Round(80  + (ay - 1) * 33); // falsch, muss konstant sein!
    x1 := Round(321 + (ay - 1) * 33); // falsch, muss konstant sein!
    moveto(x0, y);
    lineto(x1, y);
  end;
Da sich in der zweiten Schleife ay bei jedem Durchlauf ändert, muss der Wert für y bei jeden Durchlauf neu berechnet werden.
Die Werte für x0 und x1 sollten hier für jede Linie gleich sein, auf keinen Fall abhängig von ay.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.
Seite 2 von 2     12   

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