| Autor |
Beitrag |
teamrocket0
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: 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.
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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 25.01.07 22:33
Moin!
teamrocket0 hat folgendes geschrieben: | | Ist es so besser mit dem sortieren? |
Besser, aber noch nicht gut.
teamrocket0 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 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Do 25.01.07 22:36
Hmmmmmmmmmmm, hmmmm. Das habe ich dan wohl mal so eben wegessen.
Das ich das auch selber nicht gesehen habe!
Heißen Dank!
Und was müsste ich noch beim sortieren beachten?
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 25.01.07 22:41
Moin!
Bitte.
teamrocket0 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 STYLEGUIDE.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
teamrocket0 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Do 25.01.07 22:46
Narses hat folgendes geschrieben: |
Es geht nicht um "Sortieren", sondern um Einrückungen der Zeilen, die die Struktur des Quelltextes sichtbar machen. Schau mal nach 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 25.01.07 22:51
Moin!
teamrocket0 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:
Delphi-Quelltext 1: 2: 3: 4:
| if (Bedingung) then MachWas else MachWasAnderes; |
oder beim case of:
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 
      
Beiträge: 177
Erhaltene Danke: 1
Win ME, Win XP, Win 7, Win 10
Delphi 7, 10.2 Tokyo
|
Verfasst: Do 25.01.07 23:00
Hm. OK.
Danke erstmal.
Werde versuchem mich daran zu halten wenn programmiere!
|
|
jaenicke
      
Beiträge: 19335
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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.
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. 
|
|