Como verificar se um form foi criado

Delphi

20/09/2013

Olá pessoal!

Estou utilizando o seguinte código para abrir meus formulários:

 
 with TFrm_CadCliente.Create(nil) do
  begin
    try
      ShowModal;
    finally
      Free;
    end;
  end;


O problema é que não consigo verifica se o Frm_CadCliente foi criado ou não usando o comando Assigned(Frm_CadCliente).
Existe outra forma de fazer isso??

Agradeço desde já qualquer ajuda...
Vagner Almeida

Vagner Almeida

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

20/09/2013

Você não está conseguindo verificar por que está usando o with, logo, está criando uma nova instância do form e não usando a instância padrão (que leva o nome do form).
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

20/09/2013

Teste o seguinte:
var
i:integer;
begin
with Application do
    for i:=0 to componentcount-1 do
        if components[i] is TFrm_CadCliente then
            showmessage('form já criado');
end; 
GOSTEI 0
Marco Salles

Marco Salles

20/09/2013

Olá pessoal!

Estou utilizando o seguinte código para abrir meus formulários:

 
 with TFrm_CadCliente.Create(nil) do
  begin
    try
      ShowModal;
    finally
      Free;
    end;
  end;


O problema é que não consigo verifica se o Frm_CadCliente foi criado ou não usando o comando Assigned(Frm_CadCliente).

Existe outra forma de fazer isso??

Agradeço desde já qualquer ajuda...


hummmm , mas onde vc utiliza este comando Assigned(Frm_CadCliente) ... Onde e porque ? Este tipo de teste é utilizado quando se utiliza o Show ou aplicações MDI
ao utilizar o ShowModal não faz muito sentido este teste salvo alguma situação particular

[]sds
GOSTEI 0
Vagner Almeida

Vagner Almeida

20/09/2013

Obrigado...
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

20/09/2013

Faz assim
     //Criado       // Ativo
if Assigned(form1) and (form1.Active) then
begin
end; 


ai você testa se esta Criado e se esta Ativo
GOSTEI 0
Marco Salles

Marco Salles

20/09/2013

Faz assim
     //Criado       // Ativo
if Assigned(form1) and (form1.Active) then
begin
end; 


ai você testa se esta Criado e se esta Ativo


Esta criado não significa estar ativo e o Assigned não testa se existe uma instancia , apenas que existe um endereço que não é NIL

veja um exemplo

var
form:TformQualquer;
begin
if Form <> Nil then // Deveria ser Nil pois o form não foi Criado e nen instanciado
showmessage('È DIFERENTE DE NIL , MAS COMO ????')




GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

20/09/2013

vivendo e aprendendo!
GOSTEI 0
POSTAR