Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   acceder a los controles de otro formulario MDIChild!! (https://www.clubdelphi.com/foros/showthread.php?t=65308)

_CALI 04-12-2009 17:20:44

acceder a los controles de otro formulario MDIChild!!
 
Hola amigos, se que pueden ayudarme con lo ste:
tengo una aplicaion MDI y como hago para acceder a los controles de un formulario MDIChild, cuando este llame a otro MDICHild?
muestro en forma de arbol los (n) de instancias de los formularios hijos
padre(frmPincipal)
hijos(Form1 y Form2)
------------------------------------------------------
frmPrincipal
............Form1 (instancia 1)
........................Form2 (ha sido llamado por Form1)
............Form1 (instancia 2)
........................Form2
............Form1 (Instancia 3)
........................Form2
............Form1 (instancia N)

------------------------------------------------------
descripcion:
1- el form1 tiene controles, ejm un TEdit1 y un TQuery1 y hay tres abiertos a la vez
2- el form2 es llamado desde Form1 y desde Form2 es donde quiero acceder a los controles que posee el Form1 ejm: (form1.edit1.text:= 'holaamigos'), pero que este cambio se refleje en la instancia del formulario que llama a Form2.

Ahora aprovechando esta esquema y oportunidad para saber si es correcto poner el TQuery en el Form1 para poder hacer las consultas independientemente de las instancias del Form1?, el Tema es que esta aplicacion es cliente servidor MDI, y Form1 representa a mis clientes y form2 es la Busqueda de mis clientes.

espero me haya explicado bien.

Saludos y ya de antemano mil Gracias!!!

droguerman 04-12-2009 22:00:30

Es perfectamente posible, el problema es que estás confundiendo la clase mdi (TForm1, TForm2) con las instancias de dichas clases (form1, form2), lo único que debes procurar es que las instancias estén declaradas como variables que puedan ser accesibles.

El único problema que se me ocurre puedas experimentar es que los uses no permiten referencias circulares, lo cual se puede solucionar colocando correctamente el nombre de la unidad en la sección que corresponda, de la siguiente forma:
en form1
Código Delphi [-]
interface
   uses form2, ....;

en form2
Código Delphi [-]
implementation
  uses form1, ...;


La franja horaria es GMT +2. Ahora son las 23:23:25.

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