OK caly kod wyglada tak: (nie miejcie mi za zle ze nie jest on zbyt profesjonalny)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label4: TLabel;
Button1: TButton;
Label5: TLabel;
Label6: TLabel;
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a, b, c, delta: double;
x1, x2 : Double;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
a:= StrToFloat(Edit1.Text);
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
b:= StrToFloat(Edit2.Text);
end;
procedure TForm1.Edit3Change(Sender: TObject);
begin
c:= StrToFloat(Edit3.Text);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label4.Caption := '';
Label5.Caption := '';
delta:= b*b - (4*a*c);
Label6.Caption := FloatToStr(delta);
If delta <0 then
begin
label4.Caption := 'Delta ujemna - brak pierwiastkow';
end
else
begin
if delta = 0 then
begin
x1:= (-b)/(2*a);
Label4.Caption := FloatToStr(x1);
end
else
begin
x1:=((-b)-(sqrt(delta)))/(2*a);
x2:=((-b)+(sqrt(delta)))/(2*a);
Label4.Caption := FloatToStr(x1);
Label5.Caption := FloatToStr(x2);
end
end
end;
end.
Program dziala bez zarzutu ale gdy proboje wpisac np do edit1 -2 lub inna cyfre z minusem z przodu to wywala mi blad:
Debugger Exception Notification
Project Project2.exe raised exception class EConverError with message "-" is not a valid floating point value'. Process stopped. Use Step or Run to continue.
Moze deklaracja zmiennych jest zla ?? Ale jesli tak to jaki typ odpowiada za liczby ujemne ??</delphi>