• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Pascal-Würfel

Irus

Member
Morgen schreibe ich eine Klausur in Informatik über Delphi.ich benutze jetzt gerad Lazarus,aber die Syntax ist ja sehr gleich
Aller wahrscheinlichkeit erden wir ein Programm schreiben müssen, dass es erlaubt,zu würfeln und danach das Ergebniss als Bild zu zeigen.Folgendes hab ich.
Code:
type

  { TForm1 }

  TForm1 = class(TForm)
    Image1: TImage;
    Wuerfe: TButton;
    Ende: TButton;
    los: TButton;
    procedure EndeClick(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure losClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1;wuerfel:integer;

implementation

{ TForm1 }



procedure TForm1.EndeClick(Sender: TObject);
begin
  close
end;

procedure TForm1.Image1Click(Sender: TObject);
begin

end;

procedure TForm1.losClick(Sender: TObject);
begin
wuerfel := Random(6)+1;
       case wuerfel==1 do Image1.Picture.LoadFromFile('eins.jpeg')
       case wuerfel==2 do Image1.Picture.LoadFromFile('zwei.jpeg')
       case wuerfel==3 do Image1.Picture.LoadFromFile('drei.jpeg')
       case wuerfel==4 do Image1.Picture.LoadFromFile('vier.jpeg')
       case wuerfel==5 do Image1.Picture.LoadFromFile('fuenf.jpeg')
       case wuerfel==6 do Image1.Picture.LoadFromFile('sechs.jpeg');
end;

initialization
  {$I unit1.lrs}

end.
Wo mach ich hier meine Fehler? Ich finde sie nicht. Wirklich schlau bin ich nicht bei Pascal.
 

Slowmo

Member
Kannst du nicht kompilieren oder kommt ein Fehler während dem ausführen?

Ist zwar ne Weile her dass ich Delphi programmiert hab aber ein Fehler hab ich glaub ich schon gefunden:
Code:
close;

Und die Case-SChleife scheint so auch nicht zu stimmen, soweit ich mich erinnere müsste das so gehen:
Code:
case wuerfel of
1: Image1.Picture.LoadFromFile('eins.jpeg');
2:Image1.Picture.LoadFromFile('zwei.jpeg');
3:Image1.Picture.LoadFromFile('drei.jpeg');
4:Image1.Picture.LoadFromFile('vier.jpeg');
5:Image1.Picture.LoadFromFile('fuenf.jpeg');
6:Image1.Picture.LoadFromFile('sechs.jpeg');
end;

Einfach mal die Compilermeldung posten.
 
OP
I

Irus

Member
kam von selbst drauf:
Code:
var
  Form1: TForm1;wuerfel:integer;

implementation

{ TForm1 }



procedure TForm1.EndeClick(Sender: TObject);
begin
  close
end;

procedure TForm1.Image1Click(Sender: TObject);
begin

end;

procedure TForm1.losClick(Sender: TObject);
begin
wuerfel := Random(6)+1;
       if wuerfel=1 then  begin Image1.Picture.LoadFromFile('eins.png');end;
       if wuerfel=2 then  begin Image1.Picture.LoadFromFile('zwei.png');end;
       if wuerfel=3 then  begin Image1.Picture.LoadFromFile('drei.png');end;
       if wuerfel=4 then  begin Image1.Picture.LoadFromFile('vier.png');end;
       if wuerfel=5 then  begin Image1.Picture.LoadFromFile('fuenf.png');end;
       if wuerfel=6 then  begin Image1.Picture.LoadFromFile('sechs.png');end;
end;

initialization
  {$I unit1.lrs}

end.
Danke trotzdem.
 
OP
I

Irus

Member
Klostera Braun schrieb:
Morgen schreibe ich eine Klausur in Informatik über Delphi.ich benutze jetzt gerad Lazarus,aber die Syntax ist ja sehr gleich
Aller wahrscheinlichkeit erden wir ein Programm schreiben müssen, dass es erlaubt,zu würfeln und danach das Ergebniss als Bild zu zeigen.Folgendes hab ich.
Code:
type

  { TForm1 }

  TForm1 = class(TForm)
    Image1: TImage;
    Wuerfe: TButton;
    Ende: TButton;
    los: TButton;
    procedure EndeClick(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure losClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1;wuerfel:integer;

implementation

{ TForm1 }



procedure TForm1.EndeClick(Sender: TObject);
begin
  close
end;

procedure TForm1.Image1Click(Sender: TObject);
begin

end;

procedure TForm1.losClick(Sender: TObject);
begin
wuerfel := Random(6)+1;
       case wuerfel==1 do Image1.Picture.LoadFromFile('eins.jpeg')
       case wuerfel==2 do Image1.Picture.LoadFromFile('zwei.jpeg')
       case wuerfel==3 do Image1.Picture.LoadFromFile('drei.jpeg')
       case wuerfel==4 do Image1.Picture.LoadFromFile('vier.jpeg')
       case wuerfel==5 do Image1.Picture.LoadFromFile('fuenf.jpeg')
       case wuerfel==6 do Image1.Picture.LoadFromFile('sechs.jpeg');
end;

initialization
  {$I unit1.lrs}

end.
Wo mach ich hier meine Fehler? Ich finde sie nicht. Wirklich schlau bin ich nicht bei Pascal.
 

Mumie

Hacker
Du bist ja richtig gut! Vielleicht hilft dir das ja weiter. Andererseits ist morgen ja schon die Klausur.

http://www.christian-stelzmann.de/artikel/crashkurs.htm#ifcasebool

Eins fällt mir auch noch ein: Beim Programmstart kann man noch Randomize; machen. Dann startet der Zufallsgenerator mit einer neuen Zufallszahl.

Ich wünsche dir viel Erfolg!
 
Oben