Autor Beitrag
teamrocket0
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Do 25.01.07 22:07 
moin.
Ich habe mir so ein kleine Programm zum Üben gebastelt. Das soll immer auf Knopfdruck 5 Zeilen mit einem Text in einem Memo anzeigen.

Das Problem besteht darin das es vorkommt das nicht 5 sondern nur 4 Zeilen ausgegeben werden.

ausblenden volle Höhe Delphi-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:
44:
45:
46:
47:
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled:=true;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  randomize;
  Zahler:=0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Wert:=random(27);
    if Zahler=5 then begin
       Zahler:=0;
       memo1.Lines.Add('-----------------------');
       memo2.Lines.Add('-----------------------');
       Timer1.Enabled:=false;
    end else begin
    case Wert of

    1:
      begin
      memo1.Lines.Add('Aufgabe');
      memo2.Lines.Add('Erklärung');
    end;

    2:
      begin
      memo1.Lines.Add('Aufgabe');
      memo2.Lines.Add('Erklärung');
    end;
    ...
    ...
    end;
   Zahler:=Zahler+1;
  end
end;
end.


Weiß einer wo der Fehler liegt?


Zuletzt bearbeitet von teamrocket0 am Do 25.01.07 22:37, insgesamt 2-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 25.01.07 22:21 
Moin!

Schonmal was von "Einrücken" oder "Styleguide" gehört... :? Den Code kann man ja kaum lesen... :|

Ich schätze mal, dass du besser FormCreate statt OnActivate verwenden solltest, denn da setzt du den Zähler zurück - was dann auch passiert, wenn du "wild" durch die Gegend klickst und das Formular zwischendurch wieder de-/aktivierst. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Do 25.01.07 22:28 
Danke erstmal für deinen Hinweiß.... Ist es so besser mit dem sortieren?

Habe deinen Tip mal ausprobiert, leider ohne Erfolg.....
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 25.01.07 22:33 
Moin!

user profile iconteamrocket0 hat folgendes geschrieben:
Ist es so besser mit dem sortieren?

Besser, aber noch nicht gut. ;)

user profile iconteamrocket0 hat folgendes geschrieben:
Habe deinen Tip mal ausprobiert, leider ohne Erfolg.....

OK, dann ist dir bekannt, dass Wert:=random(27); Zahlen im Bereich von 0..26 liefert? Du hast aber keinen case 0... ? ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Do 25.01.07 22:36 
:oops:
Hmmmmmmmmmmm, hmmmm. Das habe ich dan wohl mal so eben wegessen. :autsch: :autsch: :autsch:

Das ich das auch selber nicht gesehen habe!

Heißen Dank!

Und was müsste ich noch beim sortieren beachten?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 25.01.07 22:41 
Moin!

user profile iconteamrocket0 hat folgendes geschrieben:
Heißen Dank!

Bitte. ;)

user profile iconteamrocket0 hat folgendes geschrieben:
Und was müsste ich noch beim sortieren beachten?

Es geht nicht um "Sortieren", sondern um Einrückungen der Zeilen, die die Struktur des Quelltextes sichtbar machen. Schau mal nach Suche bei Google STYLEGUIDE. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Do 25.01.07 22:46 
user profile iconNarses hat folgendes geschrieben:


Es geht nicht um "Sortieren", sondern um Einrückungen der Zeilen, die die Struktur des Quelltextes sichtbar machen. Schau mal nach Suche bei Google STYLEGUIDE. ;)

cu
Narses


Also das Prinzip ist mir schon klar. Bloß woran erkenne ich diese Struktur?
Im Unterricht hat die Lehrerin darauf nie geachtet, und auch keine Hinweiße gegeben......

Also weiß ich nicht WANN ich den Quelltext einrücken muss!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 25.01.07 22:51 
Moin!

user profile iconteamrocket0 hat folgendes geschrieben:
Also das Prinzip ist mir schon klar. Bloß woran erkenne ich diese Struktur?
Im Unterricht hat die Lehrerin darauf nie geachtet, und auch keine Hinweiße gegeben......

Also weiß ich nicht WANN ich den Quelltext einrücken muss!

Immer dann, wenn der Ablauf nicht mehr linear ist. ;) Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if (Bedingung) then
  MachWas
else
  MachWasAnderes;

oder beim case of:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
case AnInteger of
  0: ShowMessage('Null');
  1: ShowMessage('Eins');
  else
    ShowMessage('Keine Binärziffer!');
end;

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
teamrocket0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 177
Erhaltene Danke: 1

Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
BeitragVerfasst: Do 25.01.07 23:00 
Hm. OK.
Danke erstmal.
Werde versuchem mich daran zu halten wenn programmiere!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19335
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 25.01.07 23:24 
Hallo, hab mal deinen Source etwas formatiert ;-). So siehts doch gleich viel ordnetlicher aus.
Wichtig ist vor allem, dass begin und das dazugehörige end gleich eingerückt sind, genauso das case und das entsprechende end. Und dazwischen wird alles jeweils einmal eingerückt. Dann überblickt man sofort zu welchem begin ein end gehört und so.
ausblenden Delphi-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:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Wert := Random(27);
  if Zahler = 5 then
  begin
    Zahler := 0;
    Memo1.Lines.Add('-----------------------');
    Memo2.Lines.Add('-----------------------');
    Timer1.Enabled := false;
  end 
  else 
  begin
    case Wert of
      1
        begin
          Memo1.Lines.Add('Aufgabe');
          Memo2.Lines.Add('Erklärung');
        end;
      2
        begin
          Memo1.Lines.Add('Aufgabe');
          Memo2.Lines.Add('Erklärung');
        end;
    end;
    Zahler := Zahler + 1;
  end
end;

end.
Beim case hab ich auch schon viele Schreibweisen gesehen, wenn es mit begin..end ist. Ich persönlich finde diese recht übersichtlich...
Wichtig ist aber vor allem, dass man den Stil immer konsequent anwendet, auch wenns mal etwas länger dauert. ;-)