[Lazarus-es] Listado de todos los formularios de la aplicación

Christian xortix en gmail.com
Lun Jul 9 14:49:38 CEST 2012


Que tal si agregas

 if application.component[n] is tform then

Enviado desde Samsung tablet

Antonio Évora <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
>http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es


More information about the Lazarus-es mailing list