[Lazarus-es] Listado de todos los formularios de la aplicación
Antonio Évora
aevorar en gmail.com
Jue Jul 12 13:02:25 CEST 2012
El 11/07/12 15:52, Maxi escribió:
>
>
> El 9 de julio de 2012 14:12, Antonio Evora <aevorar en gmail.com
> <mailto:aevorar en gmail.com>> escribió:
>
> Hola Christian,
> El problema es que no lista todos los formularios de la
> aplicación. Me explico:
> Tengo un proyecto con dos formularios (form1 y form2)y un modulo
> de datos (dmDatos). Inicialmente cargo dmDatos y form1 (quedando
> form2 sin cargar pues se hara dinámicamente)
> En este ejemplo, justamente después de ejecutar, en el objeto
> Application.Components estaria form1 y dmDatos y en Screen.Forms
> estaria solamente form1, pero form2 no aparece por ninguna parte.
> Lo que busco es alguna rutina capaz de devolver justamente
> después de ejecutar form1, form2 y dmDatos.
>
> Un cordial saludo y gracias de antemano.
>
> Enviado desde mi iPad
>
> El 09/07/2012, a las 14:49, Christian <xortix en gmail.com
> <mailto:xortix en gmail.com>> escribió:
>
> > Que tal si agregas
> >
> > if application.component[n] is tform then
> >
> > Enviado desde Samsung tablet
> >
> > Antonio Ã0/00vora <aevorar en gmail.com <mailto:aevorar en gmail.com>>
> escribió:
> >
> >> Hola a tod en s,
> >> Necesito listar todos los formularios de una aplicación
> (creados y sin
> >> crear).
> >>
> >> He probado con este código:
> >>
> >> procedure MuestraForms();
> >> var
> >> Â n: integer;
> >> Â Salida1,
> >> Â Salida2: string;
> >> begin
> >> Â Salida1:='';
> >> Â Salida2:='';
> >> Â for n:=0 to Application.ComponentCount-1 do
> >> Â begin
> >> Â Â Salida1:=Salida1+Application.Components[n].Name+LineEnding;
> >> Â end;
> >> Â for n:=0 to Screen.FormCount-1 do
> >> Â begin
> >> Â Â Salida2:=Salida2+Screen.Forms[n].Name+LineEnding;
> >> Â end;
> >>
> >>
> Application.MessageBox(Salida1+LineEnding+LineEnding+Salida2,'',64);
> >> end;
> >>
> >> Segun la documentación que he leido (de Delphi) con
> >> Application.Components deberia de listarme todos los
> formularios de la
> >> aplicacion, pero esto no es asi. La diferencia entre utilizar
> el objeto
> >> Application y Screen, es que el primero (Application) también me
> >> devuelve el modulo de datos, mientras que Screen me devuelve
> solamente
> >> los formularios, y en los dos casos solamente los que están
> cargados en
> >> memoria.
> >>
> >> También he leÃdo que esto se puede hacer en Delphi 2010
> usando RTTI,
> >> pero utiliza unidades no existentes en Lazarus.
> >>
> >> ¿Tiene esto solución? ¿Es un bug de Lazarus/FPC?
> >>
> >> Un cordial saludo y gracias de antemano.
> >>
> >> _______________________________________________
> >> Lazarus-es mailing list
> >> Lazarus-es en lists.lazarus.freepascal.org
> <mailto:Lazarus-es en lists.lazarus.freepascal.org>
> >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
> > _______________________________________________
> > Lazarus-es mailing list
> > Lazarus-es en lists.lazarus.freepascal.org
> <mailto:Lazarus-es en lists.lazarus.freepascal.org>
> > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> <mailto:Lazarus-es en lists.lazarus.freepascal.org>
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
> Si no está creado form2 nunca te va a aparecer, ademas debes tener en
> cuenta si al momento de crearlo que parent le diste.
> Si haces Tform2.Create(nil) no tiene pariente y no va a aparecer.
> deberias crealo con pariente Application.
>
> --
> El que pregunta aprende, y el que contesta aprende a responder.
>
> No a la obsolecencia programada:
> http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html
>
> Linux User #495070
> http://domonetic.com/blog
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Hola Maxi, gracias por contestar.
Entonces no es posible como yo pretendía/creía. ¿Y mediante RTTI? Ya que
los formularios forman parte de la aplicación y en "algún sitio" están
guardados.
¿Alguna idea?
Un saludo.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20120712/20fdf8c1/attachment-0002.html>
More information about the Lazarus-es
mailing list