PDA

Ver la Versión Completa : ¿Como llamo a esta variable¿


chele
17-03-2004, 18:54:33
Buenas, tengo que poder ejecutar esta funcion :

procedure TBuscarComp.Cerrarform(Sender: TObject; var Action: TCloseAction);
begin

// aqui iria mi funcion.

end;

Mi problema es que no se que "objeto" es el sender, en si tengo que enviarle el valor del form o similar, para que en el momento de pulsar el boton me ejecute un codigo y despues me cierre el form, pero no he podido hacerlo.

¿Como se cual es el valor de sender?.
¿Como podria llamar a esta variable?.

Sorry soy un poco novato, ya medio me defiendo pero hay cosas que me quedo bloqueado como esto.:mad:

Un saludo a todos y gracias anticipadas.

roman
17-03-2004, 19:05:10
Normalmente Sender será el objeto que generó el evento. En este caso (FormClose) será el mismo formulario.

Pero no entiendo bien si lo que deseas saber es qué hacer con Sender desde tu procediemiento CerrarForm o bien cómo llamar a ese procedimiento.

De forma general te adelanto que llamar directamente eventos no es una buena práctica de programación. Lo más adecuado es que un evento se limte a llamar a algún método que sea el que haga el trabajo 'pesado' de manera que tal trabajo quede independiente de la interfaz de usuario.

// Saludos

chele
18-03-2004, 10:11:40
Creo uqe no me explique muy bien XD

A ver te cuento el caso que lo mismo lo estoy haciendo mal.

Yo tengo un boton que abro una ventana donde hago una eleccion y segun los datos elegidos en esa ventana me actualiza la otra, para abrir la ventana uso este codigo :

Buscardatoscompania := TBuscarcomp.create(Self);
Buscardatoscompania.formstyle := fsNormal;
Buscardatoscompania.Visible := false;
Buscardatoscompania.Position := poScreenCenter;
Buscardatoscompania.ShowModal;
Buscardatoscompania.free;

Aqui eligo el codigo de la compañia y entonces en la otra me actualiza, esto funciona bien el problema es que para cerrar la ventana tengo qeu darle a la X y a mi me gustaria que fuese al pulsar dos veces en el grid o dandole a un boton o similar.

¿Alguna idea?.

Venga gracias XD

Lepe
18-03-2004, 12:02:29
en la ventana mostrada con Show modal, pon un boton y su codigo seria

en un boton de aceptar:
BuscarDatoscompania.modalresult := mrOk; // interpretas que se aceptan los cambios

en un boton de Cancelar cambios:
BuscarDatoscompania.modalresult := mrCancel; // interpretas que no se aceptan los cambios

Saludos

chele
18-03-2004, 12:10:58
MUUUCHAS GRACIAS.

Funciona de escandalo.

Gracias.

roman
18-03-2004, 16:12:02
De hecho ni siquiera tienes que colocar ningún código. Los botones tienen una propiedad, ModalResult cuyo valor será el valor de la propiedad correspondiente del formulario sin necesidad de escribir el evento OnClick.

// Saludos