Ich habe versucht ein pq-Formel berechnungsprogramm zu schreiben, aber immer wenn ich für p und q Zahlen eingebe und dann auf den berechnungs-Button klicke, kommt eine Fehlermeldung
.
"Im Projekt Project1.exe ist eine
Exception der Klasse EConvertError aufgetreten. Meldung: 'ist kein gültiger Gleitkommawert' Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen."
Kann mir vielleicht einer bei der Problemlösung helfen?
Das ist mein Unit1:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TpqFormelRechner = class(TForm)
EditP: TEdit;
EditQ: TEdit;
Labelx2: TLabel;
Labelx1: TLabel;
LabelPlus2: TLabel;
LabelPlus1: TLabel;
Labelx4: TLabel;
Labelx3: TLabel;
LabelPlus4: TLabel;
LabelPlus3: TLabel;
LabelP: TLabel;
LabelQ: TLabel;
LabelGleich2: TLabel;
LabelGleich1: TLabel;
LabelNull1: TLabel;
LabelNull2: TLabel;
EXEins: TEdit;
EXZwei: TEdit;
Labelx5: TLabel;
Labelx6: TLabel;
LabelGleich3: TLabel;
LabelGleich4: TLabel;
LKommentar: TLabel;
EKommentar: TEdit;
BBerechnen: TButton;
procedure BBerechnenClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
pqFormelRechner: TpqFormelRechner;
implementation
{$R *.DFM}
procedure TpqFormelRechner.BBerechnenClick(Sender: TObject);
var p,q,a,b: Real;
begin
p := strtofloat(EditP.Text);
q := strtofloat(EditQ.Text);
a := strtofloat(EXEins.Text);
b := strtofloat(EXZwei.Text);
a := (-(p/2) + sqrt(Sqr(p/2)-q));
b := (-(p/2) - sqrt(Sqr(p/2)-q));
FloatToStrF(a,ffGeneral,7,2);
FloatToStrF(b,ffGeneral,7,2);
if sqrt(Sqr(p/2)-q)<0
then begin EKommentar.Text := 'Keine Lösung';
EKommentar.Visible := True;
LKommentar.Visible := True;
end
else if sqrt(Sqr(p/2)-q)=0
then begin EKommentar.Text := 'Nur eine Lösung';
EKommentar.Visible := True;
LKommentar.Visible := True;
end
else if sqrt(Sqr(p/2)-q)>=0
then begin EKommentar.Text := 'Zwei Lösungen';
EKommentar.Visible := True;
LKommentar.Visible := True;
end
end;
end.[delphi]