Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-06-2004
chele chele is offline
Miembro
 
Registrado: feb 2004
Posts: 83
Poder: 21
chele Va por buen camino
66,00 no es double ???

Buenas, tengo una variable declarada asi :

suma : double;

Y le envio el valor :

66,00

Y me da este error :

no es un valor entero valido

¿Que esta mal? ¿por que no es entero? ....

Venga gracias anticipadas.
Responder Con Cita
  #2  
Antiguo 14-06-2004
chele chele is offline
Miembro
 
Registrado: feb 2004
Posts: 83
Poder: 21
chele Va por buen camino
Vale segun veo es que es el . no la ,

¿Como le hago un replace? en vb es facil suma = replace(suma,",",".")

Pero en delphi no conosco la funcion ...

Gracias anticipadas.
Responder Con Cita
  #3  
Antiguo 14-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cómo obtienes el dato? quizás cambiando la forma de obtención solucionaríamos el problema

No obstante puedes mirarte la función StringReplace o la función Pos
Responder Con Cita
  #4  
Antiguo 14-06-2004
chele chele is offline
Miembro
 
Registrado: feb 2004
Posts: 83
Poder: 21
chele Va por buen camino
A ver creia solucionarlo pero nada, este es el codigo que tengo :

Código Delphi [-]
procedure TlFactAutorizaciones21.hinteriuraPrint(sender: TObject;
  var Value: String);

function CambiaEn(Cadena, Esto, Por: String): String;
   var
     aPos: Integer;
   begin
     aPos := Pos(Esto, Cadena);
     Result:= '';
     while (aPos <> 0) do begin
       Result := Result + Copy(Cadena, 1, aPos-1) + Por;
       Delete(Cadena, 1, aPos + Length(Esto)-1);
       aPos := Pos(Esto, Cadena);
     end;
     Result := Result+Cadena;
   end;

var
a : string;
ParaCambiar:string;
//a : double;
begin


a:=CambiaEn(value,',','.');

     if anterior1 = anterior then
        begin

        end
     else
         begin
        suma1 := suma1 + strtofloat(a);
         end;

anterior1 := anterior;
end;

Pero me da el mismo error, y ahora estoy enviando el valor 66.00 ya que hago el reemplazo correctamente.

El valor me llega de una base de datos y yo lo leo de un QRDBText

¿Que puedo hacer?. Pense que al quitarle la coma y ponerle punto iba a funcionar pero nada.

Gracias anticipadas.

Última edición por __cadetill fecha: 14-06-2004 a las 12:54:12. Razón: corregir etiqueta [/delphi]
Responder Con Cita
  #5  
Antiguo 14-06-2004
chele chele is offline
Miembro
 
Registrado: feb 2004
Posts: 83
Poder: 21
chele Va por buen camino
Vale ya esto si que no lo entiendo, si pongo esto :

suma1 := 30.3;

Me dice que es correcto, es decir no peta

Pero si pongo :

suma1 := strtoint(a);

ME da el error, si miro el valor de a es 66.00 es decir correcto

Bua me esta ganando no se que error es ...
Responder Con Cita
  #6  
Antiguo 14-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Vale, y por qué no accedes al dataset asociado y coges directamente el valor de allí?

Código Delphi [-]
suma1 := suma1 + Sender.DataSet.FieldByName(Sender.DataField).AsFloat;
Responder Con Cita
  #7  
Antiguo 14-06-2004
chele chele is offline
Miembro
 
Registrado: feb 2004
Posts: 83
Poder: 21
chele Va por buen camino
Por que no es un dataset, yo creo el codigo segun necesito, el cliente mete muchas variables y creo el sql, a partir del sql creo el resto, no es un dataset.

Esto es mas menos :

Código Delphi [-]
        qry := TIBQuery.Create(qry);
        qry.database := datamodule2.database;
        Qry.SQL.Text := cadenaSQL;
        qry.open();

        llistat := Tlfactautorizaciones21.create(Self);

        llistat.QuickRep1.DataSet := qry;

Donde cadenaSQL depende de muuuchas cosas, es asi como nos han dicho qeu tenemos que hacerlo en la empresa y no me dejarian cambiarlo.

¿se te ocurre otra forma de hacerlo?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:44:40.


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
Copyright 1996-2007 Club Delphi