Entwickler-Ecke

Sonstiges (Delphi) - Delphi zeigt einen Fehler bei end; and wodrann liegts?


wurstuk - Di 23.09.08 15:17
Titel: Delphi zeigt einen Fehler bei end; and wodrann liegts?
Hi ich habe gerade mit Delphi angefangen und wollte mein erstes eigenes Programm schreiben^^ erst ging auch alles gut blos dann wurde immer so eine Fehler Meldung angezeigt. I-wie immer sowas mit im Quelltext ist kein "END." vorhanden und auch kein
"initialzierung" oder so^^

Also ich wollte ein Programm machen indem der PC nach einer zahl zwischen 1 und 10 rät.

sry aber ich weiß nicht wie mann so cool den Quelltext einfügt deshalb mach ich es einfach 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:
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:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label2: TLabel;
    Label3: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
const max = 6;
var eingabe, zufall, versuche: integer;
spielende: boolean;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
  begin
randomize;
zufall := random(10) + 1
spielende := false;
button2.visible := false;
edit1.setfocus;

end;

procedure TForm1.Button1Click(Sender: TObject);
  begin
try
eingabe := strtoint(edit1.Text);
inc (versuche);
if eingabe = zufall then
label1.Caption := 'Richtig!!!';
if zufall <> eingabe then
Label1.Caption := 'Rate nochmal!';
if versuche <= max then
Label2.Caption := inttostr(versuche) + ' Versuch';
if versuche > max then
Label2.Caption := 'Es Reicht!';
if zufall <> eingabe then
Button1.caption := 'PC nochmal raten lassen!';
if (zufall = eingabe) or (versuche > max) then
  begin
button1.visible := false;
end;
if zufall = eingabe then
button2.Visible := true;
spielende := false;

end// hier wird immer der Fehler angezeigt.
end.



Hoffe ihr könnt mir Helfen

Falls i-was nicht klar ist beantworte ich gerne fragen^^

mfg

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


alzaimar - Di 23.09.08 15:24

1. Zu Posten von Code verwendest Du am besten die Delphi-Tags: Quelltext markieren und oben rechts neben dem 'Delphi' auf das Plus klicken.

2. Du solltest deinen Code einrücken: Bei jedem "begin" 2 nach rechts, bei jedem 'End' 2 nach links.


Dann findest Du den Fehler von ganz alleine (da dürfte ein 'End' zu viel sein).


Christian S. - Di 23.09.08 15:27

Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian


wazup - Di 23.09.08 15:57

Zu einem Try gehört immer Finally oder Except und eine End; und das sieht dann so aus:


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:
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    eingabe := strtoint(edit1.Text);
    inc (versuche);
    if eingabe = zufall then
      label1.Caption := 'Richtig!!!';
    if zufall <> eingabe then
      Label1.Caption := 'Rate nochmal!';
    if versuche <= max then
      Label2.Caption := inttostr(versuche) + ' Versuch';
    if versuche > max then
      Label2.Caption := 'Es Reicht!';
    if zufall <> eingabe then
      Button1.caption := 'PC nochmal raten lassen!';
    if (zufall = eingabe) or (versuche > max) then
    begin
      button1.visible := false;
    end;
    if zufall = eingabe then
      button2.Visible := true;

    spielende := false;
  finally

  end;

end// hier wird immer der Fehler angezeigt.


wurstuk - Di 23.09.08 16:02

Danke an alle^^

Ich hoffe der Titel ist jetzt besser^^

diss mit dem einrücken hab ich nicht ganz verstanden kannst du vllt ein beispiel machen?^^ sry

Diss Probleme ist jedenfalls gelöst^^ Es hat blos ein end; gefehlt^^

Vielen Dank


elundril - Di 23.09.08 16:03

ich würde aber eher sagen ein except weil er sicher versucht den fehler der da rauskommt abzufangen: eingabe := strtoint(edit1.Text);


Hidden - Di 23.09.08 16:10

Hi,

Am besten du schaust dir mal den Crashkurs von Christian S. [http://www.christian-stelzmann.de/artikel/CrashkursReloaded/] an, der ist zum Einstieg sehr gut geeignet :D

mfG,


wazup - Di 23.09.08 17:07

user profile iconelundril hat folgendes geschrieben:
ich würde aber eher sagen ein except weil er sicher versucht den fehler der da rauskommt abzufangen: eingabe := strtoint(edit1.Text);

Dann könnte er im OnKeyPress-Event speziel Tasten abfangen:

Delphi-Quelltext
1:
2:
3:
4:
5:
  if not (Key in ['0'..'9'#8]) then
  begin
    Key := #0;
    Beep;
  end;