unit mB;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
PUeberschrift: TPanel;
GroupBox1: TGroupBox;
BtPlus: TButton;
BtMinus: TButton;
BtMal: TButton;
BtDurch: TButton;
GroupBox2: TGroupBox;
BtLeicht: TButton;
BtMittel: TButton;
BtSchwer: TButton;
PZahlA: TPanel;
PRZ: TPanel;
PZahlB: TPanel;
PGleich: TPanel;
PErgebnis: TPanel;
LZaehler1: TLabel;
LNenner1: TLabel;
LZaehler2: TLabel;
LNenner2: TLabel;
LZaehlerE: TLabel;
LNennerE: TLabel;
GroupBox3: TGroupBox;
EdZaehlerE: TEdit;
LBruchstrich: TLabel;
EdNennerE: TEdit;
GroupBox4: TGroupBox;
BtErgebnis: TButton;
ImVerloren: TImage;
ImGewonnen: TImage;
LRichtig: TLabel;
LFalsch: TLabel;
LVersuche: TLabel;
EdRichtig: TEdit;
EdFalsch: TEdit;
EdVersuche: TEdit;
ImStern1: TImage;
ImStern2: TImage;
ImStern3: TImage;
ImStern4: TImage;
BtLoesung: TButton;
PGewonnen: TPanel;
procedure FormCreate(Sender: TObject);
procedure RechenzeichenClick(Sender: TObject);
procedure BtLeichtClick(Sender: TObject);
procedure BtErgebnisClick(Sender: TObject);
procedure BtMittelClick(Sender: TObject);
procedure BtSchwerClick(Sender: TObject);
procedure EdNennerEChange(Sender: TObject);
procedure EdZaehlerEChange(Sender: TObject);
procedure BtLoesungClick(Sender: TObject);
procedure EdRichtigChange(Sender: TObject);
procedure EdRichtigClick(Sender: TObject);
procedure EdFalschClick(Sender: TObject);
procedure EdVersucheClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Zaehler1,Zaehler2,ZaehlerE,Nenner1,Nenner2,NennerE,NennerEE,ZaehlerEE,Versuch,Richtig,Falsch : integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
ImGewonnen.visible := false;
ImVerloren.visible := false;
end;
procedure TForm1.BtLeichtClick(Sender: TObject);
begin
Zaehler1 := random (11)+1;
Zaehler2 := random (11)+1;
Nenner1 := random (11)+1;
Nenner2 := Nenner1 ;
LNennerE.Visible := false;
LZaehlerE.Visible := false;
repeat Zaehler2 := random(11) until
Zaehler2 < Zaehler1;
LZaehler2.Caption := IntToStr (Zaehler2);
LZaehler1.Caption := IntToStr (Zaehler1);
LNenner1.Caption := IntToStr (Nenner1);
LNenner2.Caption := IntToStr (Nenner1);
end;
procedure TForm1.RechenzeichenClick(Sender: TObject);
begin
if Sender = BtPlus then
begin
PRZ.Caption := '+';
if Nenner1 <> Nenner2 then
begin
NennerE := Nenner1*Nenner2;
ZaehlerE := (Zaehler1*Nenner2)+(Zaehler2*Nenner1);
end
else if Nenner1 = Nenner2 then
begin
NennerE := Nenner1;
ZaehlerE := Zaehler1+Zaehler2;
end;
end;
if Sender = BtMinus then
begin
PRZ.Caption := '-';
if Nenner1 <> Nenner2 then
PRZ.Caption := '-';
NennerE := Nenner1*Nenner2;
ZaehlerE := (Zaehler1*Nenner2)-(Zaehler2*Nenner1);
end
else if Nenner1 = Nenner2 then
begin
NennerE := Nenner1;
ZaehlerE := Zaehler1-Zaehler2;
end;
if Sender = BtMal then
begin
PRZ.Caption := 'x';
NennerE := Nenner1*Nenner2;
ZaehlerE := Zaehler1*Zaehler2;
end;
if Sender = BtDurch then
begin
PRZ.Caption := ':';
NennerE := Nenner1*Zaehler2;
ZaehlerE := Nenner2*Zaehler1;
end;
LZaehlerE.Caption := IntToStr (ZaehlerE);
LNennerE.Caption := IntToStr (NennerE);
end;
procedure TForm1.BtErgebnisClick(Sender: TObject);
begin
Versuch := StrToInt (EdVersuche.Text);
NennerEE := StrToInt (EdNennerE.Text);
ZaehlerEE := StrToInt (EdZaehlerE.Text);
EdVersuche.Text := IntToStr (Versuch +1) ;
if ZaehlerEE = ZaehlerE then
begin
Richtig := StrToInt (EdRichtig.Text);
MessageDlg ('Richtig!',mtInformation,[mbOK],0);
LNennerE.Visible := true;
LZaehlerE.Visible := true;
ImGewonnen.Visible := true;
EdRichtig.Text := IntToStr (Richtig+1)
end
else if ZaehlerEE <> ZaehlerE then
begin
Falsch := StrToInt (EdFalsch.Text);
MessageDlg ('Falsch! Versuchen Sie es erneut!',mtWarning,[mbRetry],0);
ImVerloren.Visible := true;
EdFalsch.Text := IntToStr (Falsch+1);
end
end;
procedure TForm1.BtMittelClick(Sender: TObject);
begin
Zaehler1 := random (21)+1;
Zaehler2 := random (21)+1;
Nenner1 := random (21)+1;
Nenner2 := random (21)+1;
LNennerE.Visible := false;
LZaehlerE.Visible := false;
repeat Zaehler2 := random(21) until
Zaehler2 < Zaehler1;
LZaehler2.Caption := IntToStr (Zaehler2);
LZaehler1.Caption := IntToStr (Zaehler1);
LNenner1.Caption := IntToStr (Nenner1);
LNenner2.Caption := IntToStr (Nenner2);
end;
procedure TForm1.BtSchwerClick(Sender: TObject);
begin
Zaehler1 := random (101)+1;
Zaehler2 := random (101)+1;
Nenner1 := random (101)+1;
Nenner2 := random (101)+1;
LNennerE.Visible := false;
LZaehlerE.Visible := false;
repeat Nenner2 := random(101)+1 until
Nenner2 <> Nenner1;
repeat Zaehler2 := random(101) until
Zaehler2 < Zaehler1;
LZaehler2.Caption := IntToStr (Zaehler2);
LZaehler1.Caption := IntToStr (Zaehler1);
LNenner1.Caption := IntToStr (Nenner1);
LNenner2.Caption := IntToStr (Nenner2);
LNennerE.Caption := IntToStr (NennerE);
LZaehlerE.Caption := IntToStr (ZaehlerE);
end;
procedure TForm1.EdNennerEChange(Sender: TObject);
begin
ImGewonnen.Visible := false;
ImVerloren.Visible := false;
end;
procedure TForm1.EdZaehlerEChange(Sender: TObject);
begin
ImGewonnen.Visible := false;
ImVerloren.Visible := false;
end;
procedure TForm1.BtLoesungClick(Sender: TObject);
begin
LNennerE.Visible := True;
LZaehlerE.Visible := True;
Falsch := StrToInt (EdFalsch.Text);
EdFalsch.Text := IntToStr (Falsch+1);
Versuch := StrToInt (EdVersuche.Text);
EdVersuche.Text := IntToStr (Versuch +1) ;
end;
procedure TForm1.EdRichtigChange(Sender: TObject);
begin
if EdRichtig.Text = '10' then
begin
ImStern1.Visible := True;
ImStern2.Visible := False;
ImStern3.Visible := False;
ImStern4.Visible := False;
end
else if EdRichtig.Text = '20' then
begin
ImStern1.Visible := True;
ImStern2.Visible := True;
ImStern3.Visible := False;
ImStern4.Visible := False;
end
else if EdRichtig.Text = '30' then
begin
ImStern1.Visible := True;
ImStern2.Visible := True;
ImStern3.Visible := True;
ImStern4.Visible := False;
end
else if EdRichtig.Text = '40' then
begin
ImStern1.Visible := True;
ImStern2.Visible := True;
ImStern3.Visible := True;
ImStern4.Visible := True;
end
else if EdRichtig.Text = '50' then
begin
ImStern1.Visible := False;
ImStern2.Visible := False;
ImStern3.Visible := False;
ImStern4.Visible := False;
PGewonnen.Visible := True;
end
end;
procedure TForm1.EdRichtigClick(Sender: TObject);
begin
MessageDlg ('Cheaten?! Na, na, na...so aber nicht!!!Der Vesuch gibt leider 5 Punkte Abzug!',mtWarning,[mbOK],0);
Richtig := StrToInt (EdRichtig.Text);
EdRichtig.Text := IntToStr (Richtig-5);
end;
procedure TForm1.EdFalschClick(Sender: TObject);
begin
MessageDlg ('Cheaten?! Na, na, na...so aber nicht!!!Der Vesuch gibt leider 5 Punkte obendrauf!',mtWarning,[mbOK],0);
Falsch := StrToInt (EdFalsch.Text);
EdFalsch.Text := IntToStr (Falsch+5);
end;
procedure TForm1.EdVersucheClick(Sender: TObject);
begin
MessageDlg ('Cheaten?! Na, na, na...so aber nicht!!!Der Vesuch gibt leider 5 Punkte obendrauf!',mtWarning,[mbOK],0);
Versuch := StrToInt (EdVersuche.Text);
EdVersuche.Text := IntToStr (Versuch+5);
end;
end.