Ver Mensaje Individual
  #1  
Antiguo 08-07-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Reputación: 19
MaMu Va por buen camino
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
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita