Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Forma de busqueda se cierra sola!! (https://www.clubdelphi.com/foros/showthread.php?t=29873)

david duarte 03-02-2006 00:44:38

Forma de busqueda se cierra sola!!
 
Hola a todos

Tengo el siguiente problema.

En el sistema que estoy haciendo, tengo usuarios de 4 laboratorios(textil, quimico, inyeccion y soplado). Cada laboratorio tiene su forma o pantalla, y dentro de cada pantalla tiene un menu, en el cual en una de tantas opciones tengo una "opcion" de busqueda.

Al inicio del programa me pide el nombre de usuario y contraseña, y dependiendo de donde trabaje el usuario, entra a su pantalla del laboratorio

Ej.
juan perez, laboratorio inyeccion
jose suarez, laboratorio textil
etc..

cuando entro como juan perez o cualquiera que no sea de textil, inmediatamente me manda a la forma de inyeccion, le doy clic en busqueda, selecciono la busqueda por folio, le introduzco el folio en el edit, y le doy clic en busqueda. me regresa la busqueda en un stringrid. todo bien.

pero cuando entro como jose suarez( esto para para todos los usuarios de laboratorio textil), me aparece la forma de laboratorio textil, le doy clic en busqueda, muestro la forma de busqueda, selecciono la opcion de busqueda por folio(logicamente de textil), introduzco el folio y cuando le doy clic en busqueda, me hace la busqueda, pero inmediatamente se cierra la forma y se regresa a la pantalla anterior, sin mas ni mas.

Ya ejecute el codigo linea por linea, y cuando se acaba de ejecutar la ultima linea de la unidad de la forma de busqueda, inmediatamente se ejecuta el onclose de la forma, sin que yo la mande llamar.
Esto pasa solamente con los usuarios de laboratorio textil.

No se porque.

les pongo algo de codigo a ver si alguien me puede ayudar a revisar y donde esta mal, que ya llevo todo el dia revisandolo y no doy.

Código Delphi [-]
case txtusuario.Text[1] of
    'T':
        Begin
          modulotablas.tbltextil.First;
          b := modulotablas.tbltextil.Locate('LabFolio',txtusuario.Text,[locaseinsensitive]);
          if (b) then
          Begin
            stringgrid1.Cells[0,form_busqueda.StringGrid1.RowCount-1] := modulotablas.tbltextil.FieldByName('LabFolio').value;
            stringgrid1.Cells[1,form_busqueda.stringgrid1.RowCount-1] := estadosol(modulotablas.tbltextil.FieldByName('Estado_sol').value);
            stringgrid1.Cells[2,form_busqueda.stringgrid1.RowCount-1] := modulotablas.tbltextil.FieldByName('Solicitante').value;
            stringgrid1.RowCount := stringgrid1.RowCount+1;
          end;
        end; //begin 'T'
    'Q':
        Begin
          modulotablas.pre_quimico.First;
          b := modulotablas.pre_quimico.Locate('LabFolio',txtusuario.Text,[locaseinsensitive]);
          if (b) then
          Begin
            stringgrid1.Cells[0,form_busqueda.StringGrid1.RowCount-1] := modulotablas.pre_quimico.FieldByName('LabFolio').value;
            stringgrid1.Cells[1,form_busqueda.stringgrid1.RowCount-1] := estadosol(modulotablas.pre_quimico.FieldByName('Estado_sol').value);
            stringgrid1.Cells[2,form_busqueda.stringgrid1.RowCount-1] := modulotablas.pre_quimico.FieldByName('Solicitante').value;
            stringgrid1.RowCount := stringgrid1.RowCount+1;
          end;
        end; //begin 'Q'
    'I':
        Begin
          modulotablas.pre_iny.First;
          b := modulotablas.pre_iny.Locate('LabFolio',txtusuario.Text,[locaseinsensitive]);
          if (b) then
          Begin
            stringgrid1.Cells[0,form_busqueda.StringGrid1.RowCount-1] := modulotablas.pre_iny.FieldByName('LabFolio').value;
            stringgrid1.Cells[1,form_busqueda.stringgrid1.RowCount-1] := estadosol(modulotablas.pre_iny.FieldByName('Estado_sol').value);
            stringgrid1.Cells[2,form_busqueda.stringgrid1.RowCount-1] := modulotablas.pre_iny.FieldByName('Solicitante').value;
            stringgrid1.RowCount := stringgrid1.RowCount+1;
          end;
        end; //begin 'I'
    'S':
        Begin
          modulotablas.pre_soplado.First;
          b := modulotablas.pre_soplado.Locate('LabFolio',txtusuario.Text,[locaseinsensitive]);
          if (b) then
          Begin
            stringgrid1.Cells[0,form_busqueda.StringGrid1.RowCount-1] := modulotablas.pre_soplado.FieldByName('LabFolio').value;
            stringgrid1.Cells[1,form_busqueda.stringgrid1.RowCount-1] := estadosol(modulotablas.pre_soplado.FieldByName('Estado_sol').value);
            stringgrid1.Cells[2,form_busqueda.stringgrid1.RowCount-1] := modulotablas.pre_soplado.FieldByName('Solicitante').value;
            stringgrid1.RowCount := stringgrid1.RowCount+1;
          end; //if (b) tabla pre_soplado
      end; //begin 'S'
    end;  //case

Gracias!!!

Cómo te sientes hoy??

roman 03-02-2006 01:40:06

Quizá estés mostrando el formulario modalmente (ShowModal) y el botón Buscar tien asignado un valor distinto de mrNone en su propiedad ModalResult.

// Saludos

david duarte 03-02-2006 16:02:36

Muchas gracias roman, Otra vez.

Si me funcionó, pero lo que se me hace mas raro es que nada mas en ese laboratorio me hacia eso, cuando entraba con los demas laboratorios no me hacia eso, y no le cambio esa propiedad para nada.

Esta raro, pero muchas gracias. Ya me funcionó.


La franja horaria es GMT +2. Ahora son las 02:33:46.

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