Registriert seit: 20. Jun 2008
1 Beiträge
|
Delphi führt Quellcode nicht aus
20. Jun 2008, 01:32
Hallo Leute
Ich soll für die Schule zu Hause so eine Art würfel Spiel mit mehreren Formularen machen. Das Würfelspiel heißt Crap oder auch CRAPS. nun hab ich soweit schon einiges fertig und muss feststellen dass Delphi bei einem Button den Quelltext nicht mehr ausführt. Dieser Button soll im Formular 5 sein und soll bewirken dass das ganze Spiel geschloßen wird und die Projekt1.exe aus dem Speicher verschwindet. Nur dies passiert nicht, hab nun zu übungszwecken denn Button so programmiert das mir eine Message angezigt wird, nur selbst dies klappt nicht. Und mit Hilfe von F7 hab ich gesehen das Delphi gar nicht den Quelltext an dieser Stelle liest. Kann mir jemand Helfen? Der Fehler tritt in Unit 5 auf, wenn BitBtn3 gedrückt wird. Im Anhang liegt das Würfelspiel gepackt in einem ZIP file.
Delphi-Quellcode:
UNIT Unit1;
interface
//-------------------- ggf Uses-Liste anpassen ! --------------------
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons;
//uses mTForm ??
type
TForm1 = class(TForm)
// published Attribute
BitBtn1 : TBitBtn;
BitBtn2 : TBitBtn;
BitBtn3 : TBitBtn;
Label1 : TLabel;
// published Methoden
procedure BitBtn1Click (Sender: TObject); // nicht überschreibbar
procedure BitBtn3Click (Sender: TObject); // nicht überschreibbar
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.DFM}
//+---------------------------------------------------------------------
//| TForm1: Methodendefinition
//+---------------------------------------------------------------------
//-------- BitBtn1Click (published) ---------------------------------------
procedure TForm1.BitBtn1Click (Sender: TObject);
begin
form2.show;
form1.hide;
end;
//-------- BitBtn3Click (published) ---------------------------------------
procedure TForm1.BitBtn3Click (Sender: TObject);
begin
close;
end;
end.
Delphi-Quellcode:
UNIT Unit2;
interface
//-------------------- ggf Uses-Liste anpassen ! --------------------
uses Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, Buttons, unit1
;
//uses mTForm ??
type
TForm2 = class(TForm)
// published Attribute
BitBtn1 : TBitBtn;
BitBtn2 : TBitBtn;
Edit1 : TEdit;
Edit2 : TEdit;
Label1 : TLabel;
Label2 : TLabel;
// published Methoden
procedure BitBtn1Click (Sender: TObject); // nicht überschreibbar
procedure BitBtn2Click (Sender: TObject); // nicht überschreibbar
procedure FormCreate (Sender: TObject); virtual; // nicht überschreibbar
end;
var
Form2: TForm2;
Kapital,einsatz:integer;
implementation
uses Unit3;
{$R *.DFM}
//+---------------------------------------------------------------------
//| TForm2: Methodendefinition
//+---------------------------------------------------------------------
//-------- BitBtn1Click (published) ---------------------------------------
procedure TForm2.BitBtn1Click (Sender: TObject);
begin
Kapital:=strtoint(edit1.text);
If Kapital=0 then
ShowMessage(' Lüg mich doch nicht an !')
else
begin
Bitbtn1.Visible:=false;
Bitbtn1.Enabled:=false;
Label2.Visible:=true;
Edit2.Visible:=true;
Edit2.SetFocus;
Bitbtn2.Visible:=true;
Bitbtn2.Enabled:=true;
end;
end;
//-------- BitBtn2Click (published) ---------------------------------------
procedure TForm2.BitBtn2Click (Sender: TObject);
begin
Einsatz:=strtoint(edit2.Text);
if (Einsatz<=0) or (Einsatz>Kapital) then
ShowMessage(' Einsatz muss größer als 0 sein und darf nicht größer als dein gesamtes Kapital sein. Dein Kapital beträgt:' + IntToStr(Kapital) + ' €')
else
begin
form3.show;
form2.hide;
end;
end;
//-------- FormCreate (published) -----------------------------------------
procedure TForm2.FormCreate (Sender: TObject);
begin
edit1.Text:=' 0';
edit2.Text:=' 0';
label2.Visible:=false;
edit2.visible:=false;
BitBtn2.Visible:=false;
bitbtn2.Enabled:=false;
end;
end.
Delphi-Quellcode:
UNIT Unit3;
interface
//-------------------- ggf Uses-Liste anpassen ! --------------------
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons, unit1, unit2
;
//uses mTForm ??
type
TForm3 = class(TForm)
// published Attribute
BitBtn1 : TBitBtn;
Edit1 : TEdit;
Edit2 : TEdit;
Label1 : TLabel;
Label2 : TLabel;
Edit3: TEdit;
Label3: TLabel;
Edit4: TEdit;
Label4: TLabel;
Edit5: TEdit;
BitBtn2: TBitBtn;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Label5: TLabel;
Label6: TLabel;
// published Methoden
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject); // nicht überschreibbar
end;
var
Form3: TForm3;
wurfel1,wurfel2,wurfel3,wurfel4,wurfelgesamt,wurfelgesamt2:integer;
implementation
uses Unit4, Unit5, Unit6;
{$R *.DFM}
//+---------------------------------------------------------------------
//| TForm3: Methodendefinition
//+---------------------------------------------------------------------
//-------- FormCreate (published) -----------------------------------------
procedure TForm3.FormShow(Sender: TObject);
begin
edit3.text:=' ';
edit4.text:=' ';
edit5.text:=' ';
edit6.text:=' ';
edit7.text:=' ';
edit8.text:=' ';
BitBtn1.Visible:=true;
randomize;
Edit1.Text:=inttostr(Kapital);
Edit1.Enabled:=false;
Edit2.Text:=inttostr(Einsatz);
Edit2.Enabled:=false;
BitBtn2.Visible:=false;
edit6.Visible:=false;
edit7.visible:=false;
edit8.Visible:=false;
label5.Visible:=false;
label6.visible:=false;
end;
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
kapital:=kapital-einsatz;
if Kapital<0 then
begin
Form4.show;
Form3.hide;
end
else
Edit1.Text:=inttostr(Kapital);
wurfel1:=random(6)+1;
wurfel2:=random(6)+1;
wurfelgesamt:=wurfel1+wurfel2;
edit3.Text:=inttostr(wurfel1);
edit4.Text:=inttostr(wurfel2);
edit5.Text:=inttostr(wurfelgesamt);
if (wurfelgesamt=7) or (wurfelgesamt=11) then
begin
Kapital:=Kapital+(3*Einsatz);
Edit1.Text:=inttostr(Kapital);
Form5.show;
form3.hide;
end
else
if (wurfelgesamt=2) or (wurfelgesamt=3) or (wurfelgesamt=12) then
begin
Form6.show;
Form3.Visible:=true;
end
else
begin
BitBtn1.Visible:=false;
BitBtn2.Visible:=true;
edit6.Visible:=true;
edit7.visible:=true;
edit8.Visible:=true;
label5.Visible:=true;
label6.visible:=true;
end;
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
wurfel3:=random(6)+1;
wurfel4:=random(6)+1;
wurfelgesamt2:=wurfel3+wurfel4;
edit6.Text:=inttostr(wurfel3);
edit7.Text:=inttostr(wurfel4);
edit8.Text:=inttostr(wurfelgesamt2);
wurfelgesamt2:=wurfelgesamt;
if wurfelgesamt2=wurfelgesamt then
begin
Kapital:=Kapital+(3*Einsatz);
Edit1.Text:=inttostr(Kapital);
Form5.show;
form3.hide;
end
else
begin
if (wurfelgesamt2=2) or (wurfelgesamt2=3) or (wurfelgesamt2=12) then
begin
Form6.show;
end;
end;
end;
end.
Delphi-Quellcode:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm4 = class(TForm)
Label1: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form4: TForm4;
implementation
uses Unit1, Unit2;
{$R *.dfm}
procedure TForm4.BitBtn2Click(Sender: TObject);
begin
form1.close;
end;
procedure TForm4.BitBtn1Click(Sender: TObject);
begin
Form1.show;
Form4.hide;
form2.Bitbtn1.Visible:=true;
form2.bitbtn1.enabled:=true;
form2.bitbtn2.Visible:=false;
form2.label2.visible:=false;
form2.edit2.visible:=false;
end;
end.
Delphi-Quellcode:
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, unit1, unit2, unit3, unit4, Buttons;
type
TForm5 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure FormShow(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form5: TForm5;
implementation
uses Unit6;
{$R *.dfm}
procedure TForm5.FormShow(Sender: TObject);
begin
Edit1.Text:=inttostr(Kapital);
Edit1.Enabled:=false;
end;
procedure TForm5.BitBtn2Click(Sender: TObject);
begin
Form1.show;
Form5.hide;
form2.Bitbtn1.Visible:=true;
form2.bitbtn1.enabled:=true;
form2.bitbtn2.Visible:=false;
form2.label2.visible:=false;
form2.edit2.visible:=false;
form3.close;
end;
procedure TForm5.BitBtn3Click(Sender: TObject);
begin
ShowMessage('Test') ;
end;end.
Delphi-Quellcode:
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;
type
TForm6 = class(TForm)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
end.
|