Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con aplicación MDI (https://www.clubdelphi.com/foros/showthread.php?t=62414)

DrkMgc 21-12-2008 23:31:08

Problema con aplicación MDI y form que NO ES MDIChild
 
Hola
Estamos haciendo una aplicación MDI y tenemos un MainForm, que tiene como ventana hija un Form que contiene en DBEdit.
El problema se da cuando queremos usar ese componente desde otro form que no es MDIChild... no encontramos cómo referenciarlo... esperamos su ayuda. Gracias

luisgutierrezb 22-12-2008 01:26:30

no funciona form.dbedit.text o lo que sea??

DrkMgc 22-12-2008 01:37:26

No... no funciona... eso es lo raro... pude resolverlo declarando una variable en la Unit donde tengo el Form MDIChild... le asigno el valor del DBEdit, y a ese puedo referenciarlo directamente desde el Form 'común' por decirle de alguna forma...
Igualmente... no sé porqué no puedo acceder al componente de manera directa...

luisgutierrezb 22-12-2008 01:44:38

pero como intentas referenciarlo? que error te marca? que version de delphi usas?

DrkMgc 22-12-2008 02:05:51

Estoy usando el Delphi 2009

Primero traté de referenciarlo de la forma que propusiste en un principio:

uses

UnitFormAgregarPersona;

...

Variable := StrToInt(FormAgregarPersona.DBEdit.Text);

[Ahí es como si no existiese el Form... porque ni con el autocompletado aparece...]


Después buscando en Internet, lo referencié de otra manera

Variable := StrToInt((Application.MainForm.MDIChildren[1] as TFormAgregarPersona).DBEdit.Text);

[Me da como error Access Violation]

Lo que finalmente hice fue declarar una variable en el UnitAgregarPersona

var
IDPersona: integer;

...

Una vez que el DBEdit tiene el valor que quiero hago:

IDPersona := StrToInt(DBEdit.Text);

Y en el otro Form hago:

Variable := IDPersona;

Y ahí pude hacer lo que quise...

Sin embargo me quedó la duda de porqué no pude usar directamente al componente en lugar de pasarlo así usando una variable...

Kipow 22-12-2008 09:26:07

Si es posible usarla lo unico es que tenes que crear entes el formulario.

DrkMgc 22-12-2008 20:26:39

Los dos formularios ya están creados...


La franja horaria es GMT +2. Ahora son las 00:40:19.

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