![]() |
Re: Probleme mit einem Rechner
Danke für alles, jetzt klappt es :)
Delphi-Quellcode:
Jetzt muss ich nur nochmal alles durchschaun wofür z.B. das
ergebnis1 := Format('%.2f',[2* pi * r]);
Label2.Caption := ergebnis1;
Delphi-Quellcode:
gut ist.
Format('%.2f',
BTW.: Naja, wir haben keinen Informatikunterricht in der Schule :( Habe mir auch schon das Buch: Delphi für Kids besorgt. und mir hat auch shcon jmd verscuht zu helfen mit dem Rechner, aber owohl er eigentlich sehr gut ist, hat er es trotzdem nicht geschafft... |
Re: Probleme mit einem Rechner
Hehe, 1,34 ist natürlich nicht so ganz passend ;) Meine Monte-Carlo-Simulation versucht mir schon den ganzen Tag zu erklören, dass Pi 2.69 ist, aber hey... ;)
LG, Markus |
Re: Probleme mit einem Rechner
Nächstes Problem:
'' is not a valid floating point value Habe jetzt schon diverse Sachen ausprobiert, aber wieder keinen Erfolg gehabt :cry: Ich hoffe ihr könnt mir jetzt noch einmal helfen... :oops: Hier die Source:
Delphi-Quellcode:
unit Kreisberechnung;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Button1: TButton; Button2: TButton; ComboBox1: TComboBox; procedure Button1Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; r, u, d, A, r2: extended; ergebnis1, ergebnis2, ergebnis3, ergebnis4: string; pi: extended; lol: integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin r := strtofloat(Edit1.Text); u := strtofloat(Edit2.text); d := strtofloat(Edit3.Text); A := strtofloat(Edit4.Text); pi := 3.14159265358; if lol = 1 then ergebnis2 := Format('%.2f',[2* pi * r]); Label2.Caption := ergebnis2; ergebnis3 := Format('%.2f',[2* r]); Label3.Caption := ergebnis3; ergebnis4 := Format('%.2f',[pi* r * r]); Label4.Caption := ergebnis4; if lol = 2 then ergebnis1 := Format('%.2f',[u / 2 * pi]); Label1.Caption := ergebnis1; r2 := strtoint(ergebnis1); ergebnis3 := Format('%.2f',[r2 * 2]); Label3.Caption := ergebnis3; ergebnis4 := Format('%.2f',[pi* r2 *r2]); Label4.Caption := ergebnis4; if lol = 3 then ergebnis1 := Format('%.2f',[d / 2]); Label1.Caption := ergebnis1; r2 := strtoint(ergebnis1); ergebnis2 := Format('%.2f',[2* pi * r2]); Label2.Caption := ergebnis2; ergebnis4 := Format('%.2f',[pi* r2 * r2]); Label4.Caption := ergebnis4; if lol = 4 then ergebnis1 := Format('%.2f',[pi * A / 2]); Label1.Caption := ergebnis1; r2 := strtoint(ergebnis1); ergebnis2 := Format('%.2f',[2* pi * r]); Label2.Caption := ergebnis2; ergebnis3 := Format('%.2f',[r2* 2]); end; procedure TForm1.ComboBox1Change(Sender: TObject); begin case Combobox1.ItemIndex of 0: lol := 1; 1: lol := 2; 2: lol := 3; 3: lol := 4; end; if lol = 1 then Edit1.Enabled := True; if lol = 2 then Edit2.Enabled := True; if lol = 3 then Edit3.enabled := true; if lol = 4 then Edit4.enabled := True end; procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Enabled := False; Edit2.Enabled := False; Edit3.Enabled := False; Edit4.Enabled := False; end; end. Danke schön schonmal im voraus! Greets |
Re: Probleme mit einem Rechner
Hast Du auch in alle Edits eine Fließkommazahl eingetragen?
|
Re: Probleme mit einem Rechner
Kann es sein, dass in einem der Edits nichts steht? Das musst du noch überprüfen (bsp. mit
![]() Des weiteren wäre es evtl. sinnvoll, wenn du ![]()
Delphi-Quellcode:
Auch das könntest du vereinfachen:
case lol of
1: begin end; 2: begin end; // ... end;
Delphi-Quellcode:
und zwar so:
case Combobox1.ItemIndex of
0: lol := 1; 1: lol := 2; 2: lol := 3; 3: lol := 4; end;
Delphi-Quellcode:
lol := Combobox1.ItemIndex + 1;
|
Re: Probleme mit einem Rechner
Hi,
erstmal nicht:
Delphi-Quellcode:
sondern: in deinem Fall wohl eher:
if lol = 1 then
ergebnis2 := Format('%.2f',[2* pi * r]); Label2.Caption := ergebnis2; ergebnis3 := Format('%.2f',[2* r]); Label3.Caption := ergebnis3; ergebnis4 := Format('%.2f',[pi* r * r]); Label4.Caption := ergebnis4;
Delphi-Quellcode:
Aber das schlimmste ist, dass Du mit
if lol = 1 then
begin ergebnis2 := Format('%.2f',[2* pi * r]); Label2.Caption := ergebnis2; ergebnis3 := Format('%.2f',[2* r]); Label3.Caption := ergebnis3; ergebnis4 := Format('%.2f',[pi* r * r]); Label4.Caption := ergebnis4; end;
Delphi-Quellcode:
Versuchst, einen String, in dem '1.45333' oder so (also ein Gleitkommawert in einen String konvertert), in ein Integer umzuwandeln, also eine Ganzzahl. Da meckert er mit Recht. Alo entweder runden, oder in Float konvertieren.
r2 := strtoint(ergebnis1);
LG, Markus |
Re: Probleme mit einem Rechner
Meinst du wenn ich die exe starte?
tschuldigung, bin noch ein anfänger xD also, man wählt aus was vorgegeben ist und nur dieses edit wird freigegeben. z.B edit 1 für r. dann habe ich 3, 3,0 und 3.0 eingegeben und jedes mal kommt der error Edit: ok danke, ich probiers mal! |
Re: Probleme mit einem Rechner
Zitat:
|
Re: Probleme mit einem Rechner
So, mit deinen Edits ist alles im Lot. Ich weiß zwar nicht genau, was Du damit vorhast, aber okay...
Delphi-Quellcode:
Wie gesagt: beschäftige Dich mal damit, was String, Integer, Float, Real usw. bedeuten und wie man sie ineinander umwandelt. Mir scheint, als hättest Du von Variablentypen noch nie etwas gehört...
[..]
var Form1: TForm1; r, u, d, A, r2: extended; ergebnis1, ergebnis2, ergebnis3, ergebnis4: string; pi: extended; lol: integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin r := strtofloat(Edit1.Text); u := strtofloat(Edit2.text); d := strtofloat(Edit3.Text); A := strtofloat(Edit4.Text); pi := 3.14159265358; if lol = 1 then begin ergebnis2 := FloatToStr(2* pi * r); Label2.Caption := ergebnis2; ergebnis3 := FloatToStr(2* r); Label3.Caption := ergebnis3; ergebnis4 := FloatToStr(pi* r * r); Label4.Caption := ergebnis4; end; if lol = 2 then begin ergebnis1 := FloatToStr(u / 2 * pi); Label1.Caption := ergebnis1; r2 := strtofloat(ergebnis1);// StrToFloat, statt StrToInt!!! ergebnis3 := FloatToStr(r2 * 2); Label3.Caption := ergebnis3; ergebnis4 := FloatToStr(pi* r2 *r2); Label4.Caption := ergebnis4; end; if lol = 3 then begin ergebnis1 := FloatToStr(d / 2); Label1.Caption := ergebnis1; r2 := strtofloat(ergebnis1);// StrToFloat, statt StrToInt!!! ergebnis2 := FloatToStr(2* pi * r2); Label2.Caption := ergebnis2; ergebnis4 := FloatToStr(pi* r2 * r2); Label4.Caption := ergebnis4; end; if lol = 4 then begin ergebnis1 := FloatToStr(pi * A / 2); Label1.Caption := ergebnis1; r2 := strtofloat(ergebnis1);// StrToFloat, statt StrToInt!!! ergebnis2 := FloatToStr(2* pi * r); Label2.Caption := ergebnis2; ergebnis3 := FloatToStr(r2* 2); end; end; [...] LG, Markus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 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