Listar nome de todos os formularios do projeto

Delphi

05/06/2009

Como posso obter a lista de todos os formulários do meu projeto, sendo que a maioria não estão no Auto-Create.


Delmar

Delmar

Curtidas 0

Respostas

Woinch

Woinch

05/06/2009

Você quer fazer isso em tempo de execução dentro do próprio projeto para saber quais formulários estão criados na memória ou seria um projeto terceiro que leia por exemplo um arquivo .dpr e diz todos os formulários que contém nesse .dpr? Não entendi muito bem...


GOSTEI 0
Danielrsanches

Danielrsanches

05/06/2009

se for para listar os forms em tempo de execução, vai uma dica:

procedure TForm1.Button1Click(Sender: TObject);
var
I: word;
begin
        for I:=0 to application.ComponentCount-1 do
        begin
                if application.Components[I].ClassParent = TForm then
                        showmessage((application.Components[I] as TForm).ClassName);
        end;
end;



GOSTEI 0
Delmar

Delmar

05/06/2009

Preciso de uma ferramenta ou solução que pegue o nome(name) de todos os forms (incluindo forms que estão e não estão no auto-create)?


GOSTEI 0
Danielrsanches

Danielrsanches

05/06/2009

até onde eu sei, isso é impossível, pois, se o form não foi criado ele não existe ...


GOSTEI 0
Woinch

Woinch

05/06/2009

Mantenho a minha dúvida anterior...


GOSTEI 0
Delmar

Delmar

05/06/2009

Olá Woinch

Pode ser o projeto ler seu próprio projeto (project >> view source) ou pode ser um terceiro projeto, ou uma ferramente de terceiro ou componente, não importa como, desde que chegamos ao resultado esperado.

Eu mesmo já pensei em ler o arquivo e ir extraindo linha por linha, pois o que preciso está aí dentro.

program xxxxxx;

uses
  Forms,
  fprincipal in ´fprincipal.pas´ ,
  fendereco in ´fendereco.pas´ ,
  fcidade in ´fcidade.pas´ ,
  fatividade in ´fatividade.pas´ ,
  fbairro in ´fbairro.pas´ ,
  fsaque in ´fsaque.pas´ ,
  fmovimento in ´fmovimento.pas´ ,
  fhistorico in ´fhistorico.pas´ ;


E antes que eu seja perguntado, o objetivo é ober a lista para realizar uma formatação padrão em todo projeto, usando Delphi For Ex.

De forma automatizada, poderíamos obter a lista atualizada, sempre que julgase necessário aplicar a padranização de nomes em todo código do programa, que tem em média 400 unidades/Units.

Mas como é possível que já exista uma solução pronta, resolvi perguntar.


GOSTEI 0
Weber

Weber

05/06/2009

Você quer apenas o que estiver dentro do Projects?
Se for isto e se puder ser um aplicativo separado basta carregar o project.dpr para uma StringList e depois fazer um ´for´


GOSTEI 0
POSTAR