GARANTIR DESCONTO

Fórum Forms, identificador único para teste de existência #296032

19/09/2005

0

Testes para verificar se a janela já foi criada (já está em memória) costumam usar a propridade [b:9f770c12fa]Caption[/b:9f770c12fa]. Todas as rotinas que já vi usam esta propriedade. No entanto, ela pode ser repetida e modificada em um sistema com dezenas de formulários. Se o teste é feito sob o Windows, outra instância do sistema ou até mesmo outro aplicativo pode ter janelas com o mesmo nome. A propriedade [b:9f770c12fa]Name[/b:9f770c12fa] não pode ser modificada, mas outra instância do mesmo aplicativo teria forms com o mesmo valor na propriedade [b:9f770c12fa]Name[/b:9f770c12fa]. Pergunto, então:

Há como manipular um form através de um identificador único no Windows (handle)? Se sim, gostaria de um exemplo.


José Cordeiro

José Cordeiro

Responder

Posts

19/09/2005

Celamar

Eu costumo fazer da seguinte forma:

  if Form1 = nil then //verifica se foi criado
    Application.CreateForm(TForm1, Form1); //cria o form
  Form1.Show; //exibe o form


Tudo isso no evento que chamará o form...

Mas para isso o seu Form deve estar do lado direiro da seguinte tela:
Entre no menu Project, opção Options, veja que na aba Forms há duas listas:
Auto-create from e Avaliable forms, o form que vc deseja verificar se foi ou não criado deve estar na lista da direita (avaliable forms).

Aí é soh testar


Responder

Gostei + 0

20/09/2005

José Cordeiro

Celamar, a técnica funciona para verificar se a classe foi instanciada. Mas o que fazer quando for o caso de criar mais de uma instância da tela? Por exemplo, janelas do tipo Pesquisar, do Windows (é comum manter-se mais de uma aberta).


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar