Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   utilizar mismo form en distintos modulos (https://www.clubdelphi.com/foros/showthread.php?t=12067)

@-Soft 04-07-2004 14:37:11

utilizar mismo form en distintos modulos
 
hola

necesito saber como puedo utilizar la misma ventana en distintos modulos, me explico, tengo dos modulos que se llaman profesores y alumnos y tengo otros modulos llamados sectores, ciudades, etc. en fin, tanto los profesores como los alumnos tienen sectores donde viven y ciudades, etc. el sector o ciudad yo los llamo por medio de un codigo, ya que estan almacenados en otra tabla, y cuando estoy creando un profesor o alumno quiero desplegar un listado de ciudades o sectores con sus respectivos codigos en caso de que el usuario no sepa el codigo del mismo, pero ahi es que esta el detalle, yo no quiero crear un listado para cada modulo sino utilizar el mismo en cada modulo que lo requiera. reutilizar el modulo. trabajo con delphi 7 + BDE + Paradox 7 + rxlib

marcoszorrilla 04-07-2004 19:19:31

Pues símplemente llamas a estas ventanas desde todos los módulos en que las necesites.
Código Delphi [-]
Application.CreateForm(TfrmSectores, frmSectores);
frmSectores.ShowModal

Supongo que el problema que se te plantea es como saber quien llamo a la ventana para que devuelve el valor a la tabla que corresponda alumnos, profesores....

Puedes utilizar el parámetro Sender ó simplemente utilizar una variable, pública ó global, por ejemplo:

Código Delphi [-]
Var
nWhoCall:Integer;
....
begin
{1-Profesores; 2-Alumnos}
nWhoCall:=1;
Application.CreateForm(TfrmSectores, frmSectores);
frmSectores.ShowModal


{En Sectores}
case nWhoCall of
1:ProfesoresSector.Value:=SectoresSector.Value;
2:AlumnosSector.Value:=SectoresSector.Value;
end;


Supongo que era algo como esto lo que preguntabas?, sino es así amplía la información.

Un Saludo.

ruina 05-07-2004 10:19:44

otra solución muy interesante para el tema de las busquedas son los frames.

Es decir, tienes la opción de sacar el form de busqueda en modal (ShowModal) o bien crearte un frame con un rxdblookupcombobox y alguna otra funcionalidad (como por ejemplo un boton de "nuevo" que llame al formulario de introducción de datos de esa tabla). Con lo que conseguirias eliminar la ventana modal.

Basicamente se podria hacer siguiendo la herencia...:

Frame
|
FrameBusquedas - FrameBusquedasSectores
|
FrameBusquedasCiudades


Con lo que tu código de busqueda y visualización quedaria centralizado en el el "FrameBusquedas" y las particularidades de cada busqueda estarian en su frame correspondiente.


Nota b:
una forma de busqueda con lookupCombos que Sí me gusta para graaaandes tablas es mediante un TQuery auxiliar, que sea simplemente un select del código y el campo sobre el que quieres buscar ordenado. Es realmente rápido (excepto la primera vez) en bases de datos relacionales, aunque en paradox no se que tal se comportará ....

@-Soft 08-07-2004 14:13:53

hola

ampliando la informacion, lo que quiero es desplegar una ventana de listado donde rapidamente el usuario busque algun registro que desconosca, y que al pulsar enter en dicho listado este copie el codigo de ese elemento de la lista al Edit de consulta del Form Padre que lo llamo, pero sucede que yo quiero reutilizar dicha lista ya que hay otros modulos en los que se necesita utilizar dicha lista. vamos a poner un ejemplo escrito.

tengo un modulo que se llama Alumnos y otro Profesores

En alumnos :
Codigo del alumno
Nombre
apellidos
Sector
Ciudad
Municipio
Provincia

En Profesor
Codigo del Profesor
Nombre
Apellido
Sector
Ciudad
Municipio
Provincia

entonces segun las reglas de normalizacion, yo tengo que crear una tabla para el sector, ciudad, municipio y provincias y codificarlos para luego relacionarlos con los demas modulo por medio del codigo. si al momento de estar capturando el sector en el modulo de alumnos y el usuario no conoce el codigo de ese sector entonces el despliega la lista, lanza una consulta y devuelve el valor del codigo en el Edit donde se digita el codigo, pero en Profesores se hace lo mismo y es por esto que no quiero crear una lista para cada modulo donde necesite utilizar dicha lista, sino reutilizar esa lista en todos los modulos donde los necesite.

espero haber sido explicito, Gracias

Salu2

marcoszorrilla 08-07-2004 14:42:21

Pues justo la idea que yo te apunté antes. Creas un formulario modal y colocas una rejilla, por ejemplo, con las ciudades y cuando el usuario desee verá este formulario con los datos para elegir, puedes colocar también un edit para hacer búsqueda incremental, en cualquier caso el problema que se plantea es como devolver el valor al tabla que corresponda, yo te apuntaba que utilizando una variable global sabríamos a donde tendríamos que guardar el valor elegido y otra opción utilizar el (sender).

Un Saludo.

@-Soft 09-07-2004 13:51:21

OK

lo voy a probar y mas tarde les hare saber.

Salu2


La franja horaria es GMT +2. Ahora son las 07:19:53.

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