Hola, como dice el titulo del hilo, tengo problemas al cambiar de formato. intento guardar un dato en mi tabla (campo->numero->double) de la siguiente manera:
Código Delphi
[-]
QPielFreezer.Insert;
try
QPielFreezer.FieldByName('iniciales').AsString:=ComboBox3.Text;
QPielFreezer.FieldByName('numero').AsInteger:=SpinEdit1.Value;
QPielFreezer.FieldByName('categoria').AsString:=ComboBox1.Text;
QPielFreezer.FieldByName('estado').AsString:=ComboBox2.Text;
QPielFreezer.FieldByName('fecha').AsDateTime:=DateTimePicker1.DateTime;
QPielFreezer.FieldByName('largo').AsFloat:=StrToFloat(Edit1.Text);
QPielFreezer.FieldByName('estaca').AsBoolean:=False;
QPielFreezer.FieldByName('stock').AsBoolean:=False;
QPielFreezer.FieldByName('curtiembre').AsBoolean:=False;
QPielFreezer.FieldByName('freezer').AsBoolean:=True;
QPielFreezer.Post;
except
QPielFreezer.Cancel;
end;
Pero me salta error "Invalid Float Pointer value". En un principio pense que era, por el separador decimal, el cual uso como defino en la siguiente funcion:
Código Delphi
[-]
procedure TCuereados.Edit1KeyPress(Sender: TObject; var Key: Char);
var sNumAnterior:string;
begin
sNumAnterior := (sender as TEdit).Text;
if (key <> #3) and (key <> #22) then begin if key in ['-','.'] then
begin
if (pos(key,(sender as TEdit).Text) > 0) and
(pos(key,(sender as TEdit).SelText) = 0)
then key:=#0;
case key of
'-': if ((sender as TEdit).SelStart > 0) then key:=#0;
'.': if ((sender as TEdit).SelStart = 0) or
(((sender as TEdit).SelStart = 1) and
((sender as TEdit).Text[1] = '-'))
then key:=#0;
end;
end
else if not (key in ['0'..'9',#8]) then key:=#0;
end;
if key = #22 then
try
key := #0;
(sender as TEdit).PasteFromClipBoard;
StrToFloat((sender as TEdit).Text);
except
(sender as TEdit).Text := sNumAnterior;
(sender as TEdit).SelStart := Length((sender as TEdit).Text);
end;
end;
Pero ya sea que use "." punto o "," coma, en ambos caso me tira el mismo error:
Porque????? en que me estoy equivocando y no logro darme cuenta???
Saludos y Gracias