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

Antonio Evora aevorar en gmail.com
Lun Jul 9 19:12:41 CEST 2012


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> escribió:

> 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
> _______________________________________________
> 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