PDA

Ver la Versión Completa : Eventos que no reaccionen ante un Form no activo !!!


vpepen
21-07-2005, 16:35:29
Hola Foro....

Tengo una inquietud: ¿Es posible que los eventos programados en los controles que están en un Form no se activen a menos que el Form esté activo?

Esta inquietud viene a raíz de que tenía unos controles DBEdit en un Form y había programado el eventor OnChange y sucede que cada vez que se hacía cualquier desplazamiento por la tabla a la que apuntaban los DBEdits automáticamente se disparaba el evento. El problema es que en ese evento se hacía una actualización a otros campos de la tabla y cuando no estaba en dicho formulario me producía actualizaciones incorrecta.

Las gracias anticipadas,

Víctor.-

dec
21-07-2005, 17:05:51
Hola,

Los formularios tienen una propiedad "Active" que tal vez podrías utilizar como "bandera". Es decir, los eventos se dispararían igualmente, pero, siempre podrías situar la condición:


if not Active then Exit;

Antes de que en el evento en cuestión se llevara a cabo nada en absoluto.

Por ejemplo, este sería el evento "OnTimer" de un "TTimer" que tuviera que saludarme, como bien educado, cada tanto tiempo:


procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not Active then Exit;
ShowMessage('Hola dec');
end;

En este caso, siempre que el formulario esté activo (Active = true) recibiré un saludo (no tengo abuela) pero, si, por el contrario, el formulario no estuviera activo no recibiría ningún saludo. Qué le vamos a hacer.

vpepen
22-07-2005, 14:02:04
Gracias Dec...

Esa opción la había tomado en cuenta, y de hecho es como resolví el problema, pero tengo esa duda con relación a que los eventos no se disparen si el form no está activo, ya que me imagino que eso le resta al rendimiento de la aplicación.

Las gracias anticipas...

Víctor.-