Help?? werkt niet

Status
Niet open voor verdere reacties.

raycko

Gebruiker
Lid geworden
15 mei 2008
Berichten
43
hallo allemaal

Waarom werkt de functie length niet bij?? kunnen jullie helpen

Code:
var
  Form1: TForm1;
  getal: double;
  uitkomst: double;
  lengte: integer;

implementation

{$R *.dfm}

procedure TForm1.AfsluitenClick(Sender: TObject);
begin
//Programma afsluiten
application.Terminate;
end;

procedure TForm1.WisClick(Sender: TObject);
begin
// De Tekstvakken leeg maken.
form1.LabeledEdit1.Text := '';
form1.LabeledEdit2.Text := '';
end;

procedure TForm1.WortelClick(Sender: TObject);
begin
//Eerst zetten we het getal in een variable
getal := StrToInt(form1.LabeledEdit1.Text);
//Dat nemen we de wortel met de functie Sqrt() en zte het in een variable.
uitkomst := Sqrt(getal);
lengte := Length(getal);
if lengte > 1 then
begin
form1.LabeledEdit2.Text := 'EEEEEE';
end
else
begin
//Nu zetten we de uitkomst in het tekstvak uitkomst
form1.LabeledEdit2.Text := FloatToStr(uitkomst);
end;
end;

end.
 
Length Function
Returns the number of characters in a string or elements in an array.

Unit System
Category : string handling routines

function Length(S): Integer;

Description

Length returns the number of characters actually used in the string or the number of elements in the array.

For single-byte (AnsiString) and multibyte strings, Length returns the number of bytes used by the string. For Unicode (WideString) strings, Length returns the number of bytes divided by two.

S is a string- or array-valued expression.

-------
Dit komt rechtstreeks uit de delhi VCL reference.
Jij probeert de lengte van een DOUBLE te krijgen waar je een INTEGER ingezet hebt ??

grtz gerrit
 
Laatst bewerkt:
Wat je denk ik wel kan doen is die double naar een string converteren en dan naar de lengte van de string kijken of die groter dan 1 is.

Hoezo declare je alle variabelen buiten de procedures, is namelijk alleen nodig als je de dat ergens anders in je unit nog eens wilt gebruiken en wat in jou geval niet nodig is als ik zo kijken.

Ik zie ook dat je een begin/end gebruik in je if-statement, is ook niet nodig als je maar één ding aanroept.

Hier dan hoe het zou moeten zijn:

Code:
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.AfsluitenClick(Sender: TObject);
begin
//Programma afsluiten
application.Terminate;
end;

procedure TForm1.WisClick(Sender: TObject);
begin
// De Tekstvakken leeg maken.
form1.LabeledEdit1.Text := '';
form1.LabeledEdit2.Text := '';
end;

procedure TForm1.WortelClick(Sender: TObject);
var
  getal: double;
  uitkomst: double;
  lengte: string;
begin

//Eerst zetten we het getal in een variable
getal := StrToInt(form1.LabeledEdit1.Text);

//Dat nemen we de wortel met de functie Sqrt() en zte het in een variable.
uitkomst := Sqrt(getal);

lengte := IntToStr(Length(getal));

if length(lengte) > 1 then  
   form1.LabeledEdit2.Text := 'EEEEEE'
else
    //Nu zetten we de uitkomst in het tekstvak uitkomst
    form1.LabeledEdit2.Text := FloatToStr(uitkomst);

end;

end.

Niet getest, zou wel moeten werken.

Jeffrey
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan