Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi zahlenraten (https://www.delphipraxis.net/80090-zahlenraten.html)

mkinzler 2. Nov 2006 22:17

Re: zahlenraten
 
Zitat:

Zitat von Mikamuh
bei trystrtoint kommt "[Fehler] Unit1.pas(42): Nicht genügend wirkliche Parameter"

Dann schu dir mal die Hilfe dazu an:
Delphi-Quellcode:
function TryStrToInt(const s: string; out i : integer): boolean;

Jakob3 2. Nov 2006 22:28

Re: zahlenraten
 
Das spiel hab ich auch schon gesschrieben. Hier mein Quelltext:

Delphi-Quellcode:
unit spiel;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
const Max = 15;
var
  Form1: TForm1;
  Eingabe, Versuche, Zufall: Integer;
  spielEnde: Boolean;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if spielEnde then Close;
  try
    Edit1.SetFocus;
    Eingabe := StrToInt (Edit1.Text);
    inc (Versuche);
    if Versuche <= Max then
     Label2.Caption := IntToStr (Versuche) + '. Versuche:'
    else
     Label2.Caption := 'Es reicht!';
    if Eingabe = Zufall then label1.Caption := 'Richtig geraten!';
    if Eingabe < Zufall then Label1.Caption := 'Deine Zahl ist zu klein!';
    if Eingabe > Zufall then Label1.Caption := 'Deine Zahl ist zu groß';
    if (Eingabe = Zufall) or (Versuche > Max) then
    begin
    Button1.Caption := 'Ende';
    SpielEnde := true;
    end;

  except
    Label1.Caption := 'Quatsch!';
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
  Zufall := random(1000) + 1;
  Versuche := 1;
  SpielEnde := false;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   Edit1.SetFocus;
   Label1.Caption := 'Ich denke mir eine neue Zahl aus!';
   Label2.Caption := 'Rate mal!';
   Button1.Caption := 'OK';
   Zufall := random(1000) + 1;
   Versuche := 1;
   SpielEnde := false;

end;

end.
Hoff es hilft dir weiter :cheers:

3_of_8 2. Nov 2006 23:13

Re: zahlenraten
 
Kurzer Hinweis, damit du dich nicht wunderst: Exceptions werden, auch wenn du sie mit try...except abfängst, trotzdem im Debugger gemeldet.

mkinzler 3. Nov 2006 07:03

Re: zahlenraten
 
Ich würde das Auftreten von Exception verhindern, in dem ich die jeweilen Try<Typ>To<Typ>-Varianten nehme.

Klaus01 3. Nov 2006 07:12

Re: zahlenraten
 
Du könntest auch den Ansatz versuchen, nur die Eingabe von Zahlen im Editfeld
zuzulassen.

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9',#8]) then
    key:=#0;
end;
Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz