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 25-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Mejor manera de validar un EDIT

buenas madrugadas

tengo un problema... no se si a alguien mas le sucede, pero a mi me esta rompiendo la cabeza....

como dice el titulo tengo algunos edits los cuales deben ser validados, entonces yo cree una rutina en la cual se validan los campos..

esta validacion se efectua de 2 formas

la primera de ellas me busca en la tabla por ejemplo Articulo, el codigo ingresado en el edit... si existe entonces el edit toma el valor de una variable publica la cual contiene el campo buscado

mas o menos asi
Código Delphi [-]
 
 if not VerificarArticulo (_Articulo) then
    begin
y VerificaArticulo es mas o menos asi
Código Delphi [-]
 
 
Function VerificarArticulo(_CodigoArt :String) :Boolean;
Var SqlStr : String;
begin
  if _CodigoArt <> '' then
    Begin
      dmComedor.qryBuscarArticulo.SQL.Clear;
      SqlStr := 'Select * From tblArticulo Where KOD = ' + QuotedStr(_CodigoArt) + ' Order By KOD';
      dmComedor.qryBuscarArticulo.SQL.Add(SqlStr);
      dmComedor.qryBuscarArticulo.Open;
      result := dmComedor.qryBuscarArticulo.RecordCount = 1;
      dmComedor.qryBuscarArticulo.First;  // por si las moscas
      dmComedor.vResultArticulo := dmComedor.qryBuscarArticuloKOD.AsString; // variables publicas
      dmComedor.vResultArticuloDescripcion := Trim (dmComedor.qryBuscarArticuloDESCL.AsString);
      dmComedor.qryBuscarArticulo.Close;
    End
  else
    Result := False;
end;

cuando hago esto funciona de las mil maravillas...

pero que pasa si el codigo ingresado no existe... entonces muestro una grilla con la informacion buscada

algo mas o menos asi

Código Delphi [-]
 
 if not VerificarArticulo (_Articulo) then // Si el codigo no esta o esta mal ingresado
    begin
      frmCatalogoArticulo := TfrmCatalogoArticulo.Create(Self);
      frmCatalogoArticulo.FormStyle := fsNormal;
      frmCatalogoArticulo.Position := poMainFormCenter;
      frmCatalogoArticulo.Visible := False;
      frmCatalogoArticulo.t_para := True;
      frmCatalogoArticulo.ShowModal;
    end;
  edtArticulo.Text := dmComedor.vResultArticulo;
  lblArticulo.Caption := Trim(dmComedor.vResultArticuloDescripcion);
  if edtArticulo.Text = '' then
    edtArticulo.SetFocus;

en el frmcatalogoArticulo tengo algo como esto
Código Delphi [-]
 
 
procedure TfrmCatalogoArticulo.FormKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key = #27 then
  begin
    key := #0;
    close;
  end;
  if key = #13 then
  begin
    if ActiveControl = dbgArticulo then
      begin
        if t_para then
          Begin
            dmComedor.vResultArticulo := qryArticuloKOD.AsString;
            dmComedor.vResultArticuloDescripcion := qryArticuloDESCL.AsString;
            qryArticulo.Close;
            Close;
          End
        Else
            btnModifica.Click;
      end
    Else
      Begin
        Perform(WM_NEXTDLGCTL,0,0);
        key := #0;
      end;
  end;
end;

pero resulta que cuando el foco sale del campo validado y "deberia" entrar al siguiente campo (En esta segunda forma de validar), pues el cursor desaparece, tampoco le hace caso al autoselect del siguiente campo yel siguiente campo (que tambien deberia ser validado) ni caso, no pasa por el evento onexit (del siguiente campo al primero validado)

me vuelve loco....
alguien sabe si estoy haciendo algo mal?, no es la forma correcta de validar?... como comentario adicional, menciono que esa formulario con la grilla que muestro en el segundo caso.. me sirve tambien como un "catalogo" o un "mantenimiento" de articulos donde puedo dar altas, modificar y hasta eliminar articulos


espero me haya echo comprender.....

esperando su pronta ayuda.....
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 25-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
voy aprobar quitandole el modal
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 25-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
mmm no tampoco me funciona.....
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 25-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Solucionado...

gracias opr la atencion
__________________
Dulce Regalo que Satanas manda para mi.....
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
mejor manera de conectar a Mysql chelox Conexión con bases de datos 2 16-05-2011 10:07:57
Tablas temporales. La mejor manera Wonni Conexión con bases de datos 14 10-07-2008 19:06:48
Firebird de la mejor manera david_uh Varios 7 19-01-2008 15:45:37
La mejor manera de hacer reportes con Qreport Coco_jac Impresión 6 29-04-2006 11:49:09
La mejor manera de Trabajar con Form manuelpr Varios 8 07-03-2005 17:08:14


La franja horaria es GMT +2. Ahora son las 16:58:35.


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