Ver Mensaje Individual
  #1  
Antiguo 25-08-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 20
rgstuamigo Va por buen camino
Trabajando con StringGrid

Hola amigos foristas, tengo un StringGrid el cual 5 columnas y una de ellas es solo para datos numericos, La situasion es la siguiente:
Cuando el usuario esta editando la columna numerica y esta poniendo numeros reales; internamente en el evento OnSetEditText de StringGrid se va sumando la columna y mostrando en un edit; el problema es cuando en ves de poner el caracter coma "," pone un punto , entonces ahi se produce un error al convertir a Float esa celda, quise solucionarlo haciendo una conversion llamando a un metodo que yo mismo me hize;pero cuando lo llamo
la celda se seleciona con azul por defecto, y por tanto si el usuario sigue introduciedo decimales ,estos se reeplazan a los que antes habia escrito;
Lo que quiero es la celda no se seleccione al al llamar a mi metodo,que internamente siga el cursor en donde corresponde.
Aqui pongo mi metodo que transforma un string que tiene punto(.) por otro string que tenga coma(,):

Código Delphi [-]
function TPrincipal.ToComaReal(s: String): String;//dentra un string //numerico que tiene  punto 
var p:Smallint;
begin
         p:=Pos('.',s);
       if(p>0)then
        begin
           Delete(s,p,1);
           Insert(',',s,p);
        end;
      result:=s;
end;

Y aqui el evento OnSetEditText:
procedure TPrincipal.tablaSetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: String);
Begin
 if (ACol=3)and (value<>'') then
  begin
       if(pos('.',value)>0)then
       begin
         tabla.Cells[ACol,ARow]:=ToComaReal(tabla.Cells[ACol,ARow]);
         //El problema segun yo es aqui despues de llamar al metodo
         // la celda me aparece seleccionada 
       end;
//de aqui en adelante hay mas codigo
//donde hace la suma  correspondiente todo esta bien de aqui en adelante
//....... 
  end;

end;
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 23-04-2010 a las 22:52:55.
Responder Con Cita