Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2019
beastmo beastmo is offline
Miembro
 
Registrado: ago 2011
Posts: 10
Poder: 0
beastmo Va por buen camino
Entrada de datos en dbgrid

Buenas gente! estoy renegando con un dbgrid. Debe ser una pavada pero estoy trabado.
La situacion es la siguiente: estoy permitiendo que el usuario ingrese datos directamente por el dbgrid. El campo que da problemas es un entero, pero aplica igual para un real. Cuando esta en modo insert o edit solamente puedo tipear numeros, lo cual funciona bien pero con click derecho despliega un menu contextual que deja pegar texto. Usualmente, en los dbEdit, en el evento OnContextPopup ponia la variable Handled a True para evitar el menu y lo solucionaba pero el dbgrid no tiene dicho evento. Ya bloquie el control + v.
Alguna idea como evitar el menu contextual en el dbgrid? o alguna forma de usar el evento before post o onvalidate para evitar el error "xxxxx ejemplo" no es un entero o real valido.
Intente esto pero no funciona:
Código:
 
if not  TryStrToInt(fdqry.FieldByName('CampoEntero').AsString, VariableInt) then
           raise Exception.Create('Error');
if not  TryStrToInt(fdqry.FieldByName('CampoEntero').Value, VariableInt) then
           raise Exception.Create('Error');
Quiero evitar que se ingrese texto pegando. Desde ya gracias, saludos!
Responder Con Cita
  #2  
Antiguo 23-01-2019
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.


Podes usar el evento OnSetText del TField en cuestión para evaluar el ingreso y actuar en consecuencia:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  DataSet.FieldByName('EL_CAMPO').OnSetText := DataSetFieldSetText;
end;

procedure TForm1.DataSetFieldSetText(Sender: TField; const Text: string);
var
  v: Integer;
begin
  if not TryStrToInt(Sender.AsString, v) then
  begin
    // Aquí lo que quieras hacer
    ShowMessage('Entrada inválida');
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 29-01-2019
beastmo beastmo is offline
Miembro
 
Registrado: ago 2011
Posts: 10
Poder: 0
beastmo Va por buen camino
Thumbs up

Muchas gracias por la respuesta, me sirvio! Lo pude solucionar, te debo una. Saludos

Última edición por Casimiro Notevi fecha: 29-01-2019 a las 01:37:05.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Entrada de datos con dblookupcombobox juank1971 Conexión con bases de datos 3 05-12-2010 16:33:06
Formatear o delimitar la Entrada en un dbgrid Yoshimitsu Conexión con bases de datos 2 10-04-2008 20:58:19
DBlookupcomobox y entrada de datos jdattoli Conexión con bases de datos 3 22-11-2006 18:29:34
Limitar entrada de texto en un DBGrid Er_Manué OOP 2 13-06-2006 18:48:21
Entrada datos rápida Manuel Varios 3 13-01-2004 22:38:38


La franja horaria es GMT +2. Ahora son las 11:18:48.


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