Olá Delphianos, hoje vamos falar um pouco sobre procedimentos (procedures) e funções (funtions).
Mas por que criar procedimentos e/ou funções?
R: Podemos (ou devemos?) criar procedimentos e/ou funções simplesmente por uma questão de modularização do código ou por uma questão de reutilização da rotina.
Definição:
Procedimentos/funções (procedure/function), as vezes chamados apenas de rotinas, são blocos de códigos que podem ser chamados de lugares diferentes dentro de um programa.
- Procedimento: Um procedimento é o tipo de rotina que não devolve um valor para quem o chamou.
- Exemplo: Application.Terminate; O objetivo do método é encerrar a aplicação, ou seja, não precisa devolver nada, apenas faz.
- Funções: Funções é o contrário do procedimento, ou seja, uma função sempre vai devolver um valor para quem a chamou.
- Exemplo: Quando queremos saber se um TEdit está selecionado (foco), podemos chamar a função Focused que retorna True/False.
- A assinatura de uma procedure é dada de duas formas:
- procedure <nome_procedure>;
- procedure <nome_procedure>(Parametro: Tipo);
- Exemplo:
- procedure limpaMemo(Memo: TMemo);
- begin
- Memo.Lines.Clear;
- end;
Declaração de uma function:
- Para uma function também é possível passar uma parâmetro. Veja:
- function <nome_function>: Tipo;
- function <nome_function>(Parametro: Tipo): Tipo;
- Exemplo:
- function contarLinhas(Memo: TMemo): Integer;
- begin
- Result := Memo.Lines.Count - 1;
- end;
- Observações:
- Toda function possui a variável Result que é declara implicitamente na function e sempre será do tipo que foi declarado no final da function, no nosso exemplo, Integer.
- Em Delphi/Pascal, quando atribuímos um valor para Result, o programa segue normalmente até encontrar uma instrução que interrompa a execução do código, por exemplo, end, Break, Exit, Abort.
Bom pessoal, espero que tenham gostado deste primeiro artigo.
No blog também será apresentado códigos e dicas para usuários avançados. Está primeira parte foi apenas para deixarmos claro a diferença entre procedure e function para aqueles que estão começando.
Abraços!
Nenhum comentário:
Postar um comentário