Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Brauche dringend Hilfe (https://www.delphipraxis.net/153996-brauche-dringend-hilfe.html)

LDProgrammierer 24. Aug 2010 14:00


Brauche dringend Hilfe
 
Liste der Anhänge anzeigen (Anzahl: 4)
Hallo Leute, ich möchte ein Programm schreiben bei dem der Computer zwei zufällige Zahlen generieren soll, und man dan z.B über ein Edit-Feld die Summe der beiden Zahlen eingeben muss, wobei dann entsprechend eine Antowrt RICHTIG, oder FALSCH angezeigt wird.

Delphi-Quellcode:
unit AUFGABEN;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label5: TLabel;
    XPManifest1: TXPManifest;
    Label3: TLabel;
    procedure Label1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a, b, c : Integer;
implementation

{$R *.dfm}

procedure TForm1.Label1Click(Sender: TObject);
begin
randomize;
a := random(100);
b := random(100);
Label2.Caption := IntToStr(a);
Label5.Caption := IntToStr(b);
Label1.Caption := ' Hol dir eine neue Aufgabe oder wähle die Rechenart';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
try
edit1.Text:=IntToStr(c);
if (c = (a+b)) then Label3.Caption := 'RICHTIG !!!' else Label3.Caption := 'FALSCH !!!';
except
Label3.Caption := 'Gib nur Zahlen ein !!!';
end;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
try
edit1.Text:= IntToStr(c);
if (c = (a-b)) then Label3.Caption := 'RICHTIG !!!' else Label3.Caption:= 'FALSCH !!!';
except
Label3.Caption:= 'Gib nur Zahlen ein';
end;
end;
end.
also wenn man auf Label1 klickt werden die Zahlen generiert, so weit klappt es , wenn ich jedoch das Ergebnis eingbe und auf z.b + klicke , dann wird die Eingabe zu null und FALSCH wir angezeigt. Beim ersten Bild habe ich das Programm gestartet beim zweiten habe ich die Zahlen generieren lassen, und in 3 habe ich die Summe eingegeben, im vierten Bild habe ich bereits auf + geklickt, und das geschah dann so. Bitte ich brauche dringend Hilfe, was mache ich falsch, ich denke schon seit über einer Stunde nach was ich tun kann aber nichts klappt mfg.

patti 24. Aug 2010 14:04

AW: Brauche dringend Hilfe
 
Hi, mach mal aus
Delphi-Quellcode:
edit1.Text:=IntToStr(c);
ein
Delphi-Quellcode:
c := StrToInt(edit1.text);
mfg

Edit: Oder nutze StrToIntDef, dann kannst du einen Default-Wert angeben, wenn es sich bei "edit1.Text" um keine Zahl handelt...

Daniel 24. Aug 2010 14:07

AW: Brauche dringend Hilfe
 
Und könntest Du Deinem Thema dann noch bitte einen aussagekräftigen Titel verpassen? Hilfe brauchen - in der einen oder andern Form- viele von uns. :cyclops:

himitsu 24. Aug 2010 14:10

AW: Brauche dringend Hilfe
 
@Patty: Eine Fehlerbehandlung in Delphi-Referenz durchsuchenStrToInt wird über Delphi-Referenz durchsuchenTryStrToInt durchgeführt.
Delphi-Referenz durchsuchenStrToIntDef diehnt dazu, daß man einen Standardwert bekommt, wenn es ein Problem gibt. Hier soll aber auf Richtigkeit geprüft werden, da ist StrToIntDef also nicht wirklich angebracht.

XxxDef = Default (Standardwert)
und bei TryXxx kann man einfach an Try-Except denken

patti 24. Aug 2010 14:15

AW: Brauche dringend Hilfe
 
@himitsu: Der Einwand ist natürlich berechtigt, aber in diesem Fall finde ich, ist StrToIntDef gar nicht so verkehrt. Er könnte zum Beispiel als Standard-Wert "-1" setzen. Die Addition von zwei positiven Zahlen ist immer positiv, im Falle einer fehlerhaften Eingabe würde der Vergleich dann mit -1 statfinden, was "FALSCH" ergeben würde und das ist denke ich in diesem Fall auch so gewollt... Gut, für die Subtraktion müsste man das vielleicht anders machen, aber mein Hinweis mit StrToIntDef war ja eh nur zur Ergänzung gedacht... Jetzt kennt er gleich zwei Möglichkeiten :-D

martin_ 24. Aug 2010 15:04

AW: Brauche dringend Hilfe
 
Du gibts der Variable c keinen Wert. Bei der Addition fehlt
Delphi-Quellcode:
c := strtoint(edit1.text);
in der ersten Zeile. Bei der Subtraktion ist der gleiche Fehler.

himitsu 24. Aug 2010 15:08

AW: Brauche dringend Hilfe
 
Zitat:

Zitat von martin_ (Beitrag 1044584)
Bei der Addition fehlt...

Ich glaub du hast was falsch verstanden.
"c", also das Ergebnis soll der Benutzer eingeben
und dieses soll dann geprüft werden.

p80286 24. Aug 2010 15:56

AW: Brauche dringend Hilfe
 
@himitsu
also in der Ursprungsform fällt c vom Himmel, nur a und b werden mit random(100) vorbelegt, da hat Martin recht.
Und patti hat ja auch gleich darauf hingewiesen.
Und die Konstruktion (a-b) halte ich auch nicht für so glücklich, da schon eher ABS(a-b)

Gruß
K-H

LDProgrammierer 25. Aug 2010 11:04

AW: Brauche dringend Hilfe
 
Danke ich habe pattis Vorschlag
Zitat:

Hi, mach mal aus edit1.Text:=IntToStr(c); ein c := StrToInt(edit1.text); mfg
versucht und es hat tatsächlich geklappt, trotzdem danke an alle die geholfen haben mfg

Luckie 25. Aug 2010 11:59

AW: Brauche dringend Hilfe
 
Und das nächste mal bitte mit aussagekräftigem Titel! Darauf wurdest du übrigens schon hingewiesen und innerhalb von 24 Stunden kannst du ihn noch selber ändern, indem du den ersten Beitrag editierst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 Uhr.
Seite 1 von 2  1 2      

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