Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Salir De Una Forma (https://www.clubdelphi.com/foros/showthread.php?t=77477)

adls65 31-01-2012 00:57:58

Salir De Una Forma
 
Tengo Una Forma En La Cual Estoy Desplegando Una Tabla Dentro De Un Grid, Registro Por Registro, Y Cuando Llega Al Eof, Vuelve Ha Efectuar Un Requery Para Actualizar Dicha Tabla Y Volver A Empezar Desde El Principio, Asi Debe Estar Permanentemente. Ahora Bien, Mi Problema Radica En Que No Encuentro La Forma De Terminar (cerrar) La Forma. Intente En Los Eventos Del Keypress, Keydown, Etc. Si Alguien Me Pudiera Orientar Para Hacer Que La Forma Se Cierre Con Cualquier Tecla, Esc, End, La Que Sea.

Gracias.

Caral 31-01-2012 01:01:18

Hola
Yo lo haria mas sencillo, poner un radio buton o un checkbox y una condicion if para terminar el proceso y cerrar el form.
Saludos

Cañones 31-01-2012 01:16:26

Código Delphi [-]
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = char(VK_ESCAPE) then
  begin
    key:= #0;
    btnCancelar.Click;
  end;
end;

La propiedad KeyPreview del form = true.
Saludos.

adls65 31-01-2012 01:28:17

Muchas Gracias por la atencion. ya intente por ese lado.
Mira, aqui esta el codigo que uso para desplegar los registros. Creo que al estar en el recorrido de la tabla inhibe cualquier intento de efectuar otra operacion. para terminarlo solo me queda con la opcion de PROGRAM RESER del menu RUN del DELPHI.


procedure TFPantallaExis.bIniciarClick(Sender: TObject);
var s:String;
begin
QExistencias.Close;
QExistencias.Open;

s := 'S';
while s = 'S' do begin
QExistencias.First;
while not(QExistencias.Eof) do begin
QExistencias.Next;

rutinas.Pausa(1);
end;

QExistencias.Requery;
end;
end;

Cañones 31-01-2012 01:33:21

Usa las etiquetas para que sea más fácil de comprender el código.

Código Delphi [-]
procedure TFPantallaExis.bIniciarClick(Sender: TObject);
var s:String;
begin
QExistencias.Close;
QExistencias.Open;

s := 'S';
while s = 'S' do begin
QExistencias.First;
while not(QExistencias.Eof) do begin
// CREO QUE ESTO AYUDARÍA
Application.ProcessMessages;
//
QExistencias.Next;

rutinas.Pausa(1);
end;

QExistencias.Requery;
end;
end;

Con lo que te indiqué en el post anterior más la modificación debería andar.

ecfisa 31-01-2012 04:37:58

Hola adsl65.

Otra forma puede ser:
Código Delphi [-]
procedure TFPantallaExis.bIniciarClickClick(Sender: TObject);
{$J+}
const
  Loop : Boolean = True;
{$J-}
begin
  with QExistencias do
  begin
    First;
    while Loop do
    begin
      Application.ProcessMessages;
      if GetKeyState(VK_ESCAPE) and 128 = 0 then // tecla Esc no presionada
      begin
        Next;              // siguiente
        if Eof then First; // si alcanzó el fin volver al primero
      end
      else                 // se presionó tecla Esc
      begin
        Close;             // QExistencias
        Loop := False;     // Terminar
      end;
    end;
  end;
  Close; //FPantallaExis
end;

Saludos.

adls65 31-01-2012 15:29:07

muchas gracias por la ayuda, si funciono lo que me comento el moredador ECFISA. a el y a todos MUCHAS GRACIAS.


La franja horaria es GMT +2. Ahora son las 06:28:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi