![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#10
|
||||
|
||||
Creo que estas intentanto programar sin haber diseñado antes la lógica y ahí está el problema, no es un reproche, suele pasar, pero en esos momentos debemos abstraernos de los pequeños problemas pensar globalmente.
La VCL suele mantener un identificador de la ventana que ha de enviar datos, por ejemplo: Ahora si, cada ventana Clientes tendrá su propia referencia a la ventana Reservas que creará, de forma que puede enviarle datos y cualquier cosa que se le antoje. Si Una ventana de Clientes, puede tener abiertas varias ventanas de reserva al mismo tiempo, en lugar de usar una variable, usarías un array de TReservas o un TObjectList. El tema de propiedades es un problema totalmente distinto a lo que hablamos, pero simplifica muchisimas cosas, por ejemplo: Ahora desde la ventana de Clientes, creamos un TREservas: Cuando se ejecuta la última línea, estamos escribiendo (write) en la propiedad LLamador, por tanto, se ejecuta el procedimiento TReservas.SetLLamador que actualiza la variable privada FLLamador y cambia el Caption de la ventana Reservas. Otro ejemplo del mismo estilo: Tu famoso IBDatsetCAmpo.Value, no te compliques tanto la vida y hazlo así: Cuando hagas un " Aux := TForm1.ValorCAmpo" estas leyendo (read) de la propiedad ValorCampo, por tanto se ejecuta la funcion GetValorCampo que devuelve el ibdataset1Campo.Value, y en Aux, tendrás ese valor. Como ves también controla errores, ya que si no está abierto el IbDataset1, devuelve el valor especial "unassigned" de todo Variant, que indica que no hay valor asignado. Lo mismo harías en Form3, crear una propiedad llamada ValorCampo, CodigoCliente o como quieras llamarla y el proceso se simplifica y queda más claro:
Todo este rollo permite que al tener una ventana de Cliente y te muevas de cliente, si hay una ventana de reservas abierta al mismo tiempo, se sincronicen los datos automáticamente de las 2 ventanas (esto no lo habías pensado hasta ahora ![]() Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 23-02-2007 a las 13:51:43. |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Varias instancias independientes de un form | apicito | OOP | 11 | 27-09-2006 15:07:10 |
multiples instancias de un Form | dark_c | OOP | 3 | 31-01-2006 09:42:14 |
Evitar múltiples instancias de un mismo form | Neomanar | OOP | 1 | 09-09-2005 17:10:26 |
Múltiples instancias de un mismo formulario | Neomanar | Varios | 1 | 22-08-2005 15:20:29 |
Abrir a la vez el mismo form con diferentes datos | Sayuri | Varios | 7 | 12-08-2005 17:28:41 |
![]() |
|