Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas con StrToFloat (https://www.clubdelphi.com/foros/showthread.php?t=45590)

MaMu 08-07-2007 06:48:18

Problemas con StrToFloat
 
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  // #3 = Copiar (Ctrl + C)
   begin                                 // #22 = Pegar (Ctrl + V)
     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

MaMu 08-07-2007 09:25:10

SOLUCIONADO

Reinstale Delphi, y varios errores me han desaparecido, lo curioso es que llevo reinstalando Delphi por cuarta vez. Se ve que me resisto a formatear.


La franja horaria es GMT +2. Ahora son las 07:16:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi