Fórum Criando uma procedura com variável... #216026
22/02/2004
0
Sei que é meio sem lógica essa pergunta, pois existe o comando If, mas eu gostaria de saber se é possível...
Jasig Aurumalfa
Curtir tópico
+ 0Posts
22/02/2004
Ildefonso
A sua resposta para o caso das variáveis só funciona se forem números inteiros consecutivos. Mas para A = 5 e B = 3, já não dá. Pense um pouco mais que você vai ver que o professor que pediu a tarefa está querendo que exploremos a matemática básica, apenas, e seus princípios de distributiva e operação reversamente possíveis.
E... sim. É possível colocar um procedure em uma variável. Mas você deve declarar o tipo de procedure e atribuir este tipo a variável que irá sustentá-lo. Este é o caso, inclusive, dos eventos, que são atribuídos a variáveis internas dos componentes e, então, executados.
Imagine que você tem três [b:19d930e9cc]procedures[/b:19d930e9cc] para realizar tarefas internas do sistema:
type
TMain = class(TForm)
{ ... }
btFire: TButton;
procedure btFireClick(Sender: TObject);
private
vProcedimento: procedure of object;
public
procedure MakeBackup;
procedure MakeRestore;
procedure MakeManut;
end;
{ ... }
implementation
procedure TMain.btFireClick(Sender: TObject);
begin
if Assigned(vProcedimento) then
vProcedimento;
end;
vProcedimento := MakeRestore;
Note que o tipo deve ser compatível. Os eventos mais simples, por exemplo o próprio evento Click, são do tipo TNotifyEvent, que é declarado assim, na [b:19d930e9cc]unit[/b:19d930e9cc] classes.pas, do Delphi:
TNotifyEvent = procedure(Sender: TObject) of object;
Como já há um tipo definido, uma variável que apontasse para tais eventos deveria ser declarada como:
MeuEvento : TNotifyEvent;
Como o tipo da [b:19d930e9cc]procedure[/b:19d930e9cc] exige um argumento do tipo TObject - que pode ser qualquer um de seus descendentes, também - para você usar a variável, mesmo que na declaração não apareça, você deveria informar os argumentos corretos...
{ ... }
MeuEvento(btFire);Quando estamos trabalhando com componentes - modificando, criando, etc. - é muito comum o uso destas variáveis de procedimento. Seu uso adequado não incorre em perdas de recursos ou outros problemas de memória, mas pode deixar o código pouco legível sem a devida documentação e comentários.
Bom trabalho. 8)
Gostei + 0
22/02/2004
Marco Salles
. Pense um pouco mais que você vai ver que o [color=red]professor [/color]que pediu a tarefa está querendo que exploremos a matemática básica, apenas, e seus princípios de distributiva e operação reversamente possíveis.
Mas No Fim Dá Tudo Certo :P
Gostei + 0
24/02/2004
Jasig Aurumalfa
Eu programo por conta própria mesmo, sou um jovem programador dedicado a curiosidade, nenhum professor me exigiu isso, ok?
:oops: Mas obrigado pela resposta, ajudou muito... :lol:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)