PDA

Ver la Versión Completa : Salir De Una Forma


adls65
31-01-2012, 00:57:58
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
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.


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:

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.