| Autor |
Beitrag |
Ari
      
Beiträge: 29
|
Verfasst: Sa 13.12.03 13:09
www.polgargym.at/~ghans/kl5/proj07.htm <--projekt
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: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;
type TForm1 = class(TForm) Panel1: TPanel; Label1: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label2: TLabel; Label3: TLabel; Panel2: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; procedure FormCreate(Sender: TObject); procedure Edit3KeyPress(Sender: TObject; var Key: Char); procedure BitBtn1Click(Sender: TObject); private procedure Zahlenerzeugen; public end;
var Form1: TForm1; z1,z2,Versuch,Richtig:word
implementation {$R *.dfm}
procedure Tform1.Zahlenerzeugen;
begin
inc (versuch); z1:=1+Random(100); z2:=1+Random(100); Edit1.Text:=intostr(z1); Edit2.Text:=intostr(z2); Edit3.Text:=''; Label1.Caption:=intostr(versuch)+'.Rechnung:';
end;
procedure TForm1.FormCreate(Sender: TObject); begin procedure Randomize; versuch:=0 richtig:=0 procedure Zahlenerzeugen;
procedure TForm1.BitBtn1Click(Sender: TObject); begin edit3.text setfocus; end;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin if key#13 then begin ..... ..... end;
if erg:=z1+z2 then begin Massagedlgpos('Richtig',mtInformation,[mbOk],0,250,250);
else begin Messagedlgpos('Falsch',mtInformation,[mbOk],0,250,250);
end;
end. |
eh er zeigt mir dauernd IMPLEMENTATION an, unten schreibt er
[Error] Unit1.pas(35): ';' expected but 'IMPLEMENTATION' found
hm.. wisst ihr weiter ?
Moderiert von Peter Lustig: Topic Verschoben
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 13.12.03 13:24
Hallo!
Ich habe mal den Teil ab FormCreate richtig eingerückt (solltest Du auch machen, wird sehr viel übersichtlicher):
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.FormCreate(Sender: TObject); begin procedure Randomize; versuch:=0 richtig:=0 procedure Zahlenerzeugen;
procedure TForm1.BitBtn1Click(Sender: TObject); begin edit3.text setfocus; end; end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin if key#13 then begin ..... ..... end;
if erg:=z1+z2 then begin Massagedlgpos('Richtig',mtInformation,[mbOk],0,250,250); else begin Messagedlgpos('Falsch',mtInformation,[mbOk],0,250,250); end; |
Man sieht ziemlich schnell, dass dieser Teil unter multiplen Frakturen leidet. Unter anderem auch das "procedure Randomize;" und "procedure Zahlenerzeugen;". Wenn Du bestehende Prozeduren aufrufst, kommt da kein "procedure" mehr vor. Es ist aber noch viel mehr kaputt, aber das siehst Du jetzt wahrscheinlich schon jetzt!
MfG
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
obbschtkuche
Gast
Erhaltene Danke: 1
|
Verfasst: Sa 13.12.03 13:32
Delphi-Quelltext 1: 2: 3:
| var Form1: TForm1; z1,z2,Versuch,Richtig:word; |
wenn der Compiler sagt, irgendwo würde ein Semicolon fehlen, ist das i.d.R. in der Zeile davor.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 13.12.03 13:37
Stimmt, dieses kleine, unschuldige, unscheibare Semikolon habe ich doch glatt total vergessen. 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Ari 
      
Beiträge: 29
|
Verfasst: Sa 13.12.03 13:54
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:
| procedure TForm1.FormCreate(Sender: TObject); begin Randomize; versuch:=0 richtig:=0 Zahlenerzeugen;
procedure TForm1.BitBtn1Click(Sender: TObject); begin edit3.text setfocus; end;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin if key#13 then begin ..... ..... end;
if erg:=z1+z2 then
begin Massagedlgpos('Richtig',mtInformation,[mbOk],0,250,250);
else
begin Messagedlgpos('Falsch',mtInformation,[mbOk],0,250,250);
end;
end. |
ich versteh nicht was falsch ist ! er zeigt mir immer Implementation an !?
Przeduren sind weg (Zahlenerzeugen,....)
Edit: jetzt zeigt er das an : Delphi-Quelltext 1: 2: 3:
| var Form1: TForm1; z1;z2;Versuch;Richtig:word |
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 13.12.03 14:06
Das, was Du per Edit geschrieben hast, hat mein Vorredner schon erklärt. Und Du solltest Deinen Quelltext wirklich einrücken!
Dann würdest Du z.B. sehen, dass Du "procedure TForm1.BitBtn1Click(Sender: TObject);" innerhalb von FormCreate implementierst. Das kann schon mal nicht funktionieren.
Delphi-Quelltext 1: 2: 3: 4: 5:
| if erg:=z1+z2 then
begin Massagedlgpos('Richtig',mtInformation,[mbOk],0,250,250);
else | Hier fehlt das zu dem "begin" passende "end". Außerdem dürften noch ein paar "end"s am Ende des Programmes fehlen, denn:
Delphi-Quelltext 1: 2: 3: 4: 5:
| begin Messagedlgpos('Falsch',mtInformation,[mbOk],0,250,250);
end;
end. |
Das "end;" schließt nur das Begin der Else-Anweisung. Die eigentliche Prozedur hat also kein end;.
Fazit: Einrücken!!!!!
Mfg
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
TomT
      
Beiträge: 116
Suse 9.1 WinXP
D6 Pers
|
Verfasst: Sa 13.12.03 17:05
_________________ ...und da wurde mir klar, dass eine Toolbar keine Kneipe für Heimwerker ist.
|
|
|