Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   llamada a método de Form desde otros Forms (https://www.clubdelphi.com/foros/showthread.php?t=62384)

Bauhaus1975 19-12-2008 19:47:13

llamada a método de Form desde otros Forms
 
Hola a todos,

Tengo una clase definida, llamada 'TBusqueda' hija de 'TForm', que pretendo que sea un formulario más o menos genérico, sirve para seleccionar un dato y devolverlo.
Devolverlo al formulario que espera ese dato y creo el formulario TBusqueda. Es el típico caso de rellenar 'usuario' en un TEdit, pero no se teclea, se obtiene tras pulsar un botón 'buscar usuario' que abre un formulario para buscar, seleccionar y devolver ese usuario.

El caso es que no sé cómo puedo llamar a un método del TForm para poder pasar el dato seleccionado. No sé si hay algún evento que escuche, o alguna otra manera adecuada.

Gracias y un saludo.

Caro 19-12-2008 20:01:22

Hola Bauhaus1975, una forma podría ser que te definas variables publicas en tu form de búsqueda, las actualizas en cuanto elija un registro, cuando se sale del form de busqueda muestras esas variables en algún lugar de tu anterior formulario antes de liberar tu formulario de búsqueda. Algo así mas o menos.

Código Delphi [-]
 //donde Codigo y nombre serían variables publicas de tu form busqueda
  FormBusqueda := TFormBusqueda.Create(Self);
  Try
    FormBusqueda.ShowModal;
    Edit1.Text := FormBusqueda.Codigo;
    Edit2.Text := FormBusqueda.Nombre;
  Finally
   FormBusqueda.Free;
  end;

Deberías indicarnos que quieres que te devuelva tu formulario de búsqueda.

Saluditos

Bauhaus1975 19-12-2008 21:16:42

Hola Caro, y muchas gracias por responder.
pues parece buena idea lo que presentas.

Cita:

Empezado por Caro (Mensaje 331590)

Deberías indicarnos que quieres que te devuelva tu formulario de búsqueda.

Pues tal y como habías supuesto: Nada más universal que un ID o código y un texto para mostrar en el TEdit.

Voy a probarlo, aunque no entiendo exactamente como devuelve el valor justo al salir del formulario...
Sólo por curiosidad, ¿exite algún evento o método para comunicar fomrularios entre si?

Saludos.

Caro 19-12-2008 21:33:18

Cita:

Empezado por Bauhaus1975 (Mensaje 331607)
Voy a probarlo, aunque no entiendo exactamente como devuelve el valor justo al salir del formulario...
Sólo por curiosidad, ¿exite algún evento o método para comunicar fomrularios entre si?

Hola de nuevo Bauhaus1975, añadiendo en el uses del formulario a otro formulario, es suficiente para que se pueda comunicar entre ambos, puedes acceder a sus metodos, variables, propiedades que te definas....., siempre y cuando sean publicos. Sobre lo que te puse al hacer ShowModal del formulario lo abres forma Modal, las líneas de codigo que tienes despues del ShowModal no se van a ejecutar hasta que no se cierre dicho formularo en tu caso tu formulario de búsqueda y cuando lo cierres tu ya tendras cargados los valores en las variables que estas compartiendo Codigo y Nombre.

Saluditos

Bauhaus1975 19-12-2008 22:07:42

Estoy de acuerdo con lo que dices. Pero lo preguntaba por lo siguiente:
Antes de que me enseñaras la forma de pasar el resultado al formulario, yo pensaba hacerlo al revés. Es decir, como el formulario que crea y abre TBusqueda puede ser cualquiera, con esa idea en mente yo pensaba en cómo poder llamar a un método genérico o evento desde TBusqueda para devolver el valor, sin tener que poner todos los formularios que le 'pudieran' crear/llamar en el uses.
¡Muchas gracias de nuevo!


La franja horaria es GMT +2. Ahora son las 22:03:36.

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