Missão Impossível
Olá amigos,
Preciso pegar o nome dos forms de minha aplicação, os quais ainda não foram criados, pois eu os crio somente qdo vou utiliza-los. Se tivesse alguma forma de pegar os forms depois de compilar (pois os forms ficam no dpr), poderia seguir meu projeto. Alguém tem alguma idéia??
Grato,
Renato
Preciso pegar o nome dos forms de minha aplicação, os quais ainda não foram criados, pois eu os crio somente qdo vou utiliza-los. Se tivesse alguma forma de pegar os forms depois de compilar (pois os forms ficam no dpr), poderia seguir meu projeto. Alguém tem alguma idéia??
Grato,
Renato
Renatotm
Curtidas 0
Respostas
Anonymous
12/02/2003
Bom, naum sei se te entendi direito, mas já que você só chama os formulários na hora de utilizá-los, naum precisa pegar uma lista dos que ainda naum foram criados em tempo de execução. Basta fazer as referências no próprio tempo projeto
GOSTEI 0
Anonymous
12/02/2003
Renato,
sua dúvida não está muito clara, mas se entendi corretamente, você desabilitou a criação automática dos forms.
Isto significa que você apenas tem as classes dos Forms criados.
Como os objetos não são instanciados automaticamente você não tem como procurá-los (eles ainda não existem).
Suas opções:
- descobrir as classes de forms disponíveis na aplicação;
- identificar as variáveis declaradas dos forms;
Em ambos os casos os resultados não dizem muito e são extremamente complexos de se obter (se é que você pode obtê-los apenas com o executável).
Podem existir alternativas melhores para resolver o seu problema, mas é necessário saber QUAL É o seu problema real.
RF
sua dúvida não está muito clara, mas se entendi corretamente, você desabilitou a criação automática dos forms.
Isto significa que você apenas tem as classes dos Forms criados.
Como os objetos não são instanciados automaticamente você não tem como procurá-los (eles ainda não existem).
Suas opções:
- descobrir as classes de forms disponíveis na aplicação;
- identificar as variáveis declaradas dos forms;
Em ambos os casos os resultados não dizem muito e são extremamente complexos de se obter (se é que você pode obtê-los apenas com o executável).
Podem existir alternativas melhores para resolver o seu problema, mas é necessário saber QUAL É o seu problema real.
RF
GOSTEI 0
Jonny_x
12/02/2003
Se form para criar form dinamicamente é assim..
Não entendi direito a sua dúvida
mas ai vai
form2:=form2.create(Application); / / vc só cria na hora que vai usar
form2.show; // ajuda a inicializar mais rápido
Não entendi direito a sua dúvida
mas ai vai
form2:=form2.create(Application); / / vc só cria na hora que vai usar
form2.show; // ajuda a inicializar mais rápido
GOSTEI 0
Wanderley.f
12/02/2003
[quote=´renatotm´]Olá amigos,
Preciso pegar o nome dos forms de minha aplicação, os quais ainda não foram criados, pois eu os crio somente qdo vou utiliza-los. Se tivesse alguma forma de pegar os forms depois de compilar (pois os forms ficam no dpr), poderia seguir meu projeto. Alguém tem alguma idéia??
Grato,
Renato
Preciso pegar o nome dos forms de minha aplicação, os quais ainda não foram criados, pois eu os crio somente qdo vou utiliza-los. Se tivesse alguma forma de pegar os forms depois de compilar (pois os forms ficam no dpr), poderia seguir meu projeto. Alguém tem alguma idéia??
Grato,
Renato
caro Renato tente isso
If nome_do_form = nil then
nome_do_form := Tnome_do_form.Create(Application);
nome_do_form.Show;
isso fará com que somente uma isntância do form seja criada, e caso ela já exista somente reexibida, mas para isso você deverá definir quais forms deverão ser criados na inicialização e quais deverão ser criados e destruidos em tempo de execuação
espero que tenha ajudado
GOSTEI 0
Flavio Sanches
12/02/2003
Pelo que eu percebi, ninguem respondeu o que vc queria saber.
E pra variar, nem eu vou responder, a menos que vc explique o que vc quer afinal, praque vc precisa saber o nome dos forms antes de cria-los.
Acrescento que vc não precisa saber qual é o nome do form pra cria-lo
vc pode usar uma procedure padrao pra criar qq form, esperar que ele seja fechado depois destruí-lo e vc, no código, so precisa passar:
abreform(form_tal);
De qq forma, a unica forma de vc conseguir fazer isso é na cri~ção da aplicação vc criar todos os forms e gravar o nome deles num array global e depois destruílos e só reconstruílos na hora de usar. mas isso é uma solução meio ´Manuel da Padaria´
espero ter contribuido
E pra variar, nem eu vou responder, a menos que vc explique o que vc quer afinal, praque vc precisa saber o nome dos forms antes de cria-los.
Acrescento que vc não precisa saber qual é o nome do form pra cria-lo
vc pode usar uma procedure padrao pra criar qq form, esperar que ele seja fechado depois destruí-lo e vc, no código, so precisa passar:
abreform(form_tal);
De qq forma, a unica forma de vc conseguir fazer isso é na cri~ção da aplicação vc criar todos os forms e gravar o nome deles num array global e depois destruílos e só reconstruílos na hora de usar. mas isso é uma solução meio ´Manuel da Padaria´
espero ter contribuido
GOSTEI 0
Anonymous
12/02/2003
O problema é o seguinte:
Desenvolvi um controle de acesso, no qual eu listo os forms para poder pegar todos seus componentes e armazena-los em um banco de dados, para tanto dou um application.findcomponent procurando a classe dos forms. O problema é que isso funciona somente com os forms criados.
Se eu pudesse pegar o nome dos forms, eu criaria eles em tempo de execucao, pegaria seus componentes e depois fecharia os mesmos.
Desenvolvi um controle de acesso, no qual eu listo os forms para poder pegar todos seus componentes e armazena-los em um banco de dados, para tanto dou um application.findcomponent procurando a classe dos forms. O problema é que isso funciona somente com os forms criados.
Se eu pudesse pegar o nome dos forms, eu criaria eles em tempo de execucao, pegaria seus componentes e depois fecharia os mesmos.
GOSTEI 0
Flavio Sanches
12/02/2003
maneiro
viajei com jota mesmo
a galera aqui do serviço se amarrou na tua ideia
e a resposta pro teu problema é
falta de casamento
c so pode ser solteiro, cara
viajei com jota mesmo
a galera aqui do serviço se amarrou na tua ideia
e a resposta pro teu problema é
falta de casamento
c so pode ser solteiro, cara
GOSTEI 0
Anonymous
12/02/2003
Pô, por que vc não gostou da minha idéia?
Abre o .DPR na marra, na execução do programa, como se fosse um texto normal, e faz um algoritmo que encontra os nomes dos Forms...
var Projeto: TextFile;
begin
AssignFile(Projeto, ´c:\MeuProjeto.DPR´)
Reset(Projeto);
while not Eof(Projeto) do
begin
Readln(............... e por aí vai....
end;
end;
Agora, se vc quer que eu faço o algoritmo, é demais!!!
Abre o .DPR na marra, na execução do programa, como se fosse um texto normal, e faz um algoritmo que encontra os nomes dos Forms...
var Projeto: TextFile;
begin
AssignFile(Projeto, ´c:\MeuProjeto.DPR´)
Reset(Projeto);
while not Eof(Projeto) do
begin
Readln(............... e por aí vai....
end;
end;
Agora, se vc quer que eu faço o algoritmo, é demais!!!
GOSTEI 0