![]() |
Fehlermeldung
Hallo
Wenn ich in meinem fertigem Programm (mein Taschenrechner) auf einen Button klicke, wie zum Beispiel M+ und es nichts im Speicher dann bekomme ich immer diese Fehlermeldung "m+ ist kein gültiger Intergerwert". Und wenn ich auf das gleichzeichen drücke, obwohl ich noch nicht eingegeben habe vorher, dann bekomme ich die fehlermeldung "gleich ist kein gültiger fließkommawert. Auch diese meldung möchte ich irgendwie beseitigen. Aber ich weiß nicht wie. Bitte helft MIR: Ich stelle hier mal meinen Quellcode da, damit ihr euch selber ein bild machen könnt.
Delphi-Quellcode:
MFG
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type Tll = class(TForm) edit_eingabe: TEdit; btm_1: TButton; btm_2: TButton; btm_plus: TButton; lbl_wert: TLabel; lbl_operation: TLabel; btm_gleich: TButton; btm_kerwert: TButton; btm_minus: TButton; btm_mal: TButton; btm_geteilt: TButton; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; btm_loeschen: TButton; Button10: TButton; btm_prozent: TButton; btmk_wurzel: TButton; Button11: TButton; btm_ce: TButton; btm_back: TButton; btm_mc: TButton; btm_ms: TButton; btm_mr: TButton; btm_mplus: TButton; btm_mminus: TButton; lbl_speicherm: TLabel; lbl_speicheranzeige: TLabel; procedure btm_1Click(Sender: TObject); procedure btm_2Click(Sender: TObject); procedure btm_plusClick(Sender: TObject); procedure btm_gleichClick(Sender: TObject); procedure btm_kerwertClick(Sender: TObject); procedure btm_minusClick(Sender: TObject); procedure btm_malClick(Sender: TObject); procedure btm_geteiltClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure btm_loeschenClick(Sender: TObject); procedure Button10Click(Sender: TObject); procedure btm_prozentClick(Sender: TObject); procedure btmk_wurzelClick(Sender: TObject); procedure Button11Click(Sender: TObject); procedure btm_ceClick(Sender: TObject); procedure btm_backClick(Sender: TObject); procedure btm_msClick(Sender: TObject); procedure btm_mcClick(Sender: TObject); procedure btm_mrClick(Sender: TObject); procedure btm_mplusClick(Sender: TObject); procedure btm_mminusClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var ll: Tll; implementation {$R *.DFM} procedure Tll.btm_1Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'1'; end; procedure Tll.btm_2Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'2'; end; procedure Tll.btm_plusClick(Sender: TObject); begin lbl_wert.Caption := edit_eingabe.text; edit_eingabe.text := '' ; lbl_operation.caption := '+' ; //edit_eingabe.SetFocus; end; procedure Tll.btm_gleichClick(Sender: TObject); var wert_aktuell, wert_gespeichert: double; ergebnis:double; begin ergebnis:=0; wert_aktuell := StrToFloat(edit_eingabe.text); wert_gespeichert := StrToFloat(lbl_wert.caption); if lbl_operation.caption= '+' then ergebnis := wert_aktuell + wert_gespeichert else If lbl_operation.caption = '-' then ergebnis := wert_gespeichert - wert_aktuell; if lbl_operation.caption= '*' then ergebnis := wert_aktuell * wert_gespeichert else If lbl_operation.caption = '/' then ergebnis := wert_gespeichert / wert_aktuell; edit_eingabe.text := FloatToStr(ergebnis); lbl_operation.caption := '' ; lbl_wert.Caption := '' ; end; procedure Tll.btm_kerwertClick(Sender: TObject); var aktueller_wert, ergebnis: double; begin if ((edit_eingabe.text='0') or (edit_eingabe.text='')) then exit; aktueller_wert := StrToFloat(edit_eingabe.text); ergebnis := 1/aktueller_wert; edit_eingabe.text := FloatToStr(ergebnis); end; procedure Tll.btm_minusClick(Sender: TObject); begin lbl_wert.Caption := edit_eingabe.text; edit_eingabe.text := '' ; lbl_operation.caption := '-' ; end; procedure Tll.btm_malClick(Sender: TObject); begin lbl_wert.Caption := edit_eingabe.text; edit_eingabe.text := '' ; lbl_operation.caption := '*' ; end; procedure Tll.btm_geteiltClick(Sender: TObject); begin lbl_wert.Caption := edit_eingabe.text; edit_eingabe.text := '' ; lbl_operation.caption := '/' ; end; procedure Tll.Button1Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'3'; end; procedure Tll.Button2Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'4'; end; procedure Tll.Button3Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'5'; end; procedure Tll.Button4Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'6'; end; procedure Tll.Button5Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'7'; end; procedure Tll.Button6Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'8'; end; procedure Tll.Button7Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'9'; end; procedure Tll.Button8Click(Sender: TObject); begin edit_eingabe.Text := edit_eingabe.text+'0'; end; procedure Tll.Button9Click(Sender: TObject); begin //If Pos(':', '3278387:4582') //then edit_eingabe.text := edit_eingabe.text+','; if Pos(',',edit_eingabe.text)=0 then edit_eingabe.text := edit_eingabe.text+','; end; procedure Tll.btm_loeschenClick(Sender: TObject); begin edit_eingabe.Text := '' ; lbl_operation.caption := '' ; lbl_wert.Caption := '' ; end; procedure Tll.Button10Click(Sender: TObject); var Zahl:string; begin Zahl:=edit_eingabe.Text; if Pos('-', Zahl) = 1 then begin Delete(Zahl, 1,1); edit_eingabe.Text:=Zahl; end else edit_eingabe.Text:='-'+edit_eingabe.Text; end; procedure Tll.btm_prozentClick(Sender: TObject); var a, er: Extended; begin a := strtofloat (lbl_wert.caption); er := strtofloat (edit_eingabe.text) * (a/100); edit_eingabe.text := floattostr (er); end; procedure Tll.btmk_wurzelClick(Sender: TObject); begin edit_eingabe.text := floattostr(sqrt(strtofloat(edit_eingabe.text))); end; procedure Tll.Button11Click(Sender: TObject); begin edit_eingabe.text := floattostr(sqr(strtofloat(edit_eingabe.text))); end; procedure Tll.btm_ceClick(Sender: TObject); begin edit_eingabe.text := ''; end; procedure Tll.btm_backClick(Sender: TObject); begin edit_eingabe.text := Copy(edit_eingabe.text,1, Length(edit_eingabe.text)-1); //Edit1.Text := Copy(Edit1.Text,1,Length(Edit1.Text)-1) end; procedure Tll.btm_msClick(Sender: TObject); begin lbl_speicherm.Caption := edit_eingabe.text; lbl_speicheranzeige.caption := 'M(Es bifindet sich was im Speicher)' ; end; procedure Tll.btm_mcClick(Sender: TObject); begin lbl_speicherm.caption := ''; lbl_Speicheranzeige.caption := ''; end; procedure Tll.btm_mrClick(Sender: TObject); begin edit_eingabe.text := lbl_speicherm.caption; end; procedure Tll.btm_mplusClick(Sender: TObject); begin lbl_speicherm.Caption := IntToStr(StrToInt(lbl_speicherm.Caption) + StrToInt(edit_eingabe.Text)); end; procedure Tll.btm_mminusClick(Sender: TObject); begin lbl_speicherm.Caption := IntToStr(StrToInt(lbl_speicherm.Caption) - StrToInt(edit_eingabe.Text)); end; end. Raffy [edit=sakura] CODE->DELPHI Tags.... Mfg, sakura[/edit] |
Re: Fehlermeldung
was hast du denn im m speicher stehen, wenn da '' steht, versuche es doch mal vorher mit '0' zu initialisieren.
gruß rené |
Re: Fehlermeldung
hab ich auch gemacht.
es funktioniert auch aber nur wenn ich auch im edit_eingabe eine 0 stehen habe. Mein problem ist, wenn ich dann etwas eingebe, dann bleibt die 0 da stehen und ich weiß nicht, wie man das macht, das die null verschwindet wenn man z.B. auf den 9knopf drückt. |
Re: Fehlermeldung
hi
Code:
ich glaub das is dein code fuer den druck auf 9
procedure Tll.Button7Click(Sender: TObject);
begin edit_eingabe.Text := edit_eingabe.text+'9'; end; du muesstest jetzt eigentlch bei jeder zahlentaste abfragen ob der edit_eingabe.text nur 0 ist und wenn ja den loeschen, also
Code:
procedure Tll.Button7Click(Sender: TObject);
begin if edit_eingabe.text='0' then edit_eingabe.text:=''; edit_eingabe.Text := edit_eingabe.text+'9'; end; gruss grumble |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr. |
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