Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-07-2011
Avatar de DarkBlue
DarkBlue DarkBlue is offline
Miembro
 
Registrado: jun 2010
Posts: 105
Poder: 14
DarkBlue Va por buen camino
mascaras de entrada para cada columna y fila de un tstringgrid

hola! , saludos a todos los valientes que han entrado a este hilo, les agradesco sus intenciones de ayudar.Deveras que les estaria muy agradecido.

2 problemas al querer darle una mascara de entrada a cada celda de un stringgrid(si asi es mascaras distintas), hasta el momento he logrado darle una mascara de entrada a solo UNA columna con sus mascaras independientes para cada celda de esa columna.

Pero el detalle es que cada ves que presiono una tecla se come la ultima que precione. por ejemplo si preciono 1 me agrega 1_ hasta ahi todo bien pero cuando preciono otra ves un numero me hace esto 2__ otra ves 3___ y asi.

creo que el problema esta en que primero occurre el evento ongeteditmask y despues el keypress asi no alcanza a actualizarse.

aquí mi código
Código Delphi [-]

procedure Tfcotizacion.StringGrid1GetEditMask(Sender: TObject; ACol,
  ARow: Integer; var Value: String);
begin


{if (ACol = 2)  then value:= LM1.strings[arow-1] else
Value := EmptyStr; } //esto se supone que es para la columna 2 pero no he podido hacerla funcionar

if (ACol = 3) then value:=LM2.Strings[arow-1] else
Value := EmptyStr;

end;


procedure Tfcotizacion.StringGrid1GetEditText(Sender: TObject; ACol,
  ARow: Integer; var Value: String);
var lastcol,lastrow:string;
begin

row:=arow; //aqui guardo en que fila y columna se coloco para escribir y seguir con la mascara independiente
col:=acol;
end;


procedure Tfcotizacion.StringGrid1KeyPress(Sender: TObject; var Key: Char);
var lm,texto,lMA,o:string;
x,lo,ban:integer;
begin

  k:=ord(key);

  if (k>=48) and (k<=57) then
 begin

   if (col=2) then
  begin
  ban:=1;
  lm:=LM1.strings[row-1]; //lm1 y lm2 son listas de string donde se guardan las mascaras
  lo:= length(lm);
  insert('0',lm,2);//le agrego otro espacio a la mascara
  lm1.Strings[row-1]:=lm;//le corrigo la nueva mascara

     end
  else if col=3 then
  begin
  ban:=2;
  lm:=LM2.strings[row-1];
  lo:=length(lm);
  insert('0',lm,2);
  lm2.Strings[row-1]:=lm;
  o:=inttostr(k);
  texto:=stringgrid1.Cells[col,row]+key;

  stringgrid1.Cells[col,row]:=''; //si le quito esto no se po que ya no me agrega el nuevo espacio ___

 stringgrid1.Cells[col,row]:=texto;

  end;



por cierto esto lo hago por que el problema de una mascara de entrada es que si se salta un espacio designado este lo deja en blanco y no se reccorre ni nada y se ve feo ya lo he lograda en un maskedit ya no me deja los espacios en blanco pero aca en el stringgrid el rollo es mas complicado
__________________
Todo es Relativo

Última edición por DarkBlue fecha: 04-07-2011 a las 06:08:41.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Cómo colorear cada celda de un TStringGrid? Almd Internet 0 19-11-2008 12:38:47
Como habilitar una sola fila del TstringGrid FAGD Varios 2 19-11-2008 11:29:44
Como Saber el nro de La fila que selecciono en un TstringGrid FAGD Varios 4 12-11-2008 22:40:54
Color a una fila de un TStringGrid hmrvivas OOP 3 16-03-2008 03:11:35
Borrar fila seleccionada de un componente TStringGrid JM75 OOP 3 16-11-2006 10:31:06


La franja horaria es GMT +2. Ahora son las 22:48:29.


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