Good morning Friedrich,
try in this way.
in the AdvEdit.onenter event set AdvEdit.PrecisionDisplay:=pdNormal, in this way the
3.45E-007 is convertd to 0,000000345 + all 0 are needed to reach the precision number you are setted (i.e. if you set Precision:=20 you have 0,0000003450000000000)
When you exit on AdvEdit.onexit set Advedit.PrecisionDisplay:=pdShortest and you back to
3.45E-007.
Ofcourse, with little work you can delete all exceeded (unwanted) zero after last number.
Have a nice day
Daniele
Good morning Friedrich,
try this second way ... (all work around ...)
The trick works on the same way ...
You have TAdvEdit already setted.
On AdvEdit.Onter even set
procedure TForm1.Edt1Enter(Sender: TObject);
begin
Edt1.EditType:=etString;
end;
Be carefully .. now you have to parse for decimal, plus, minus and E chars.
when exit
procedure TForm1.Edt1Exit(Sender: TObject);
Var D : Double;
begin
D:=Strtofloat(edt1.text); // Conversion check, here you can have conversion error .. if any
Edt1.EditType:=etFloat; // Return to float
edt1.FloatValue:=D; // Set float
end;
Now you can edit number like 4,5E-007 or 0,00000045 (i don't know why if number is not so small ... remain in number and not in scentific, i.e. if you type 4,5E-002 when exit it's change into 0,045 ... may be local settings ..)
Have a nice day
Daniele
OK, will try this, it sounds feasible:-)
When the number is like 0,045 then this is a shorter display with less digits than the same number in scientific notation, which always has the "E-002" part in it...