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

Antonio Évora aevorar en gmail.com
Lun Jul 9 09:16:31 CEST 2012


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.




More information about the Lazarus-es mailing list