Compreendendo os métodos da classe Delphi

Dentro Delphi, um método é um procedimento ou função que executa uma operação em um objeto. Um método de classe é um método que opera em uma referência de classe em vez de em uma referência de objeto.

Se você ler nas entrelinhas, descobrirá que os métodos de classe são acessíveis mesmo quando você não criou uma instância da classe (o objeto).

Métodos de Classe vs. Métodos de objeto

Toda vez que você cria um Componente Delphi dinamicamente, você usa um método de classe: o construtor.

O construtor Create é um método de classe, em oposição a praticamente todos os outros métodos que você encontrará na programação Delphi, que são métodos de objetos. Um método de classe é um método da classe e, adequadamente, um método de objeto é um método que pode ser chamado por uma instância da classe. Isso é melhor ilustrado por um exemplo, com classes e objetos destacados em vermelho para maior clareza:

myCheckbox: = TCheckbox. Criar (nulo);

Aqui, a chamada para Criar é precedida pelo nome da classe e um ponto ("TCheckbox."). É um método da classe, comumente conhecido como construtor. Este é o mecanismo pelo qual as instâncias de uma classe são criadas. O resultado é uma instância da classe TCheckbox. Essas instâncias são chamadas de objetos. Compare a linha de código anterior com o seguinte:

instagram viewer

myCheckbox. Repintar;

Aqui, o método Repaint do objeto TCheckbox (herdado de TWinControl) é chamado. A chamada para Repintar é precedida pela variável de objeto e um ponto ("myCheckbox.").

Os métodos de classe podem ser chamados sem uma instância da classe (por exemplo, "TCheckbox. Crio"). Os métodos de classe também podem ser chamados diretamente de um objeto (por exemplo, "myCheckbox. Nome da classe"). No entanto, os métodos de objeto podem ser chamados apenas por uma instância de uma classe (por exemplo, "myCheckbox. Repintar ").

Nos bastidores, o construtor Create é alocando memória para o objeto (e executando qualquer inicialização adicional, conforme especificado pelo TCheckbox ou seus ancestrais).

Experimentando com seus próprios métodos de classe

Pense no AboutBox (um formulário personalizado "Sobre este aplicativo"). O código a seguir usa algo como:

procedimento TfrMain.mnuInfoClick (Sender: TObject);
início
AboutBox: = TAboutBox. Criar (nulo);
experimentar
AboutBox. ShowModal;
finalmente
AboutBox. Liberação;
fim;
fim;
É claro que essa é uma maneira muito boa de fazer o trabalho, mas apenas para facilitar a leitura (e o gerenciamento) do código, seria muito mais eficiente alterá-lo para:
procedimento TfrMain.mnuInfoClick (Sender: TObject);
início
TAboutBox. Mostre-se;
fim;
A linha acima chama o método de classe "ShowYourself" da classe TAboutBox. O "ShowYourself" deve ser marcado com a palavra-chave "classe":
procedimento de classe TAboutBox. Mostre-se;
início
AboutBox: = TAboutBox. Criar (nulo);
experimentar
AboutBox. ShowModal;
finalmente
AboutBox. Liberação;
fim;
fim;

Coisas para manter em mente

  • A definição de um método de classe deve incluir a classe de palavra reservada antes do procedimento ou da palavra-chave da função que inicia a definição.
  • O formulário AboutBox não é criado automaticamente (Opções do Projeto).
  • Coloque a unidade AboutBox na cláusula usos do formulário principal.
  • Não se esqueça de declarar o procedimento na parte da interface (pública) da unidade AboutBox.
instagram story viewer