Alguem sabe como veficar se um certo componente já existe?

Delphi

11/05/2003

Alguem sabe como veficar via programação se um certo componente já existe?

Exemplo:
Quero verificar se uma determinada janela com um certo no já foi criada.

Obrigado.


Afonso.f

Afonso.f

Curtidas 0

Respostas

Obubiba

Obubiba

11/05/2003

[b:2e97d5a355]var[/b:2e97d5a355]
Existe: boolean;
Contador: smallint;
[b:2e97d5a355]begin[/b:2e97d5a355]
Existe := false;
[b:2e97d5a355]for[/b:2e97d5a355] Contador := 0 [b:2e97d5a355]to[/b:2e97d5a355] application.componentecount -1 [b:2e97d5a355]do[/b:2e97d5a355]
begin
[b:2e97d5a355]if[/b:2e97d5a355] application.components[Contador] [b:2e97d5a355]is[/b:2e97d5a355] TSeuComponente [b:2e97d5a355]then[/b:2e97d5a355]
Existe := true;
[b:2e97d5a355]end[/b:2e97d5a355];

[b:2e97d5a355]if[/b:2e97d5a355] Existe [b:2e97d5a355]then[/b:2e97d5a355]
/* Seu código */


GOSTEI 0
Obubiba

Obubiba

11/05/2003

Ops... Faltou uma linha de código e um End;, o fórum tá com erro, e não consigo editar minhas msgs:

[b:d0d9eea83f]var[/b:d0d9eea83f]
Existe: boolean;
Contador: smallint;
[b:d0d9eea83f]begin[/b:d0d9eea83f]
Existe := false;
[b:d0d9eea83f]for[/b:d0d9eea83f] Contador := 0 [b:d0d9eea83f]to[/b:d0d9eea83f] application.componentecount -1 [b:d0d9eea83f]do[/b:d0d9eea83f]
[b:d0d9eea83f]begin[/b:d0d9eea83f]
[b:d0d9eea83f]if[/b:d0d9eea83f] application.components[Contador] [b:d0d9eea83f]is[/b:d0d9eea83f] TSeuComponente [b:d0d9eea83f]then[/b:d0d9eea83f]
[b:d0d9eea83f]begin[/b:d0d9eea83f]
[b:d0d9eea83f]if[/b:d0d9eea83f] TSeuComponente(application.components[Contador]) <> [b:d0d9eea83f]nil[/b:d0d9eea83f] [b:d0d9eea83f]then[/b:d0d9eea83f]
/* Se o componente não estiver como Nil, significa que já está criado e instanciado pela aplicação */
Existe := true;
[b:d0d9eea83f]end[/b:d0d9eea83f];
[b:d0d9eea83f]end[/b:d0d9eea83f];

[b:d0d9eea83f]if[/b:d0d9eea83f] Existe [b:d0d9eea83f]then[/b:d0d9eea83f]
/* Seu código */

[b:d0d9eea83f]end[/b:d0d9eea83f];

------------

Acho que agora tá certo.


GOSTEI 0
Afonso.f

Afonso.f

11/05/2003

Valeu... mas eu descobri uma forma mais fácil e curta

If findcomponent(´nome_do_componente´)<>nil then
{...}
else
{...}

Valeu assim mesmo


GOSTEI 0
Obubiba

Obubiba

11/05/2003

Realmente. Não estava me lembrando da função findcomponent().
E alalisando melhor meu código, aidna tá falando uma linha pra poder preencher a variável Existe:

if TSeuComponente(application.components[Contador]).name = ´Nome´ then


GOSTEI 0
POSTAR