Fórum Passando função como parametro #182888
18/09/2003
0
Ex:
procedure teste (funcao);
begin
...
//Aqui estaria chamando a funcao que passei como parametro
funcao
...
end;
Delphiz
Curtir tópico
+ 0Posts
19/09/2003
Luciano Pimenta®
[b:227efd0251]var
vVariavel : mesmo tipo do retorno da função[/b:227efd0251]
begin
...
//Aqui estaria chamando a funcao que passei como parametro
[b:227efd0251]vVariavel := funcao [/b:227efd0251]
...
end;
Gostei + 0
19/09/2003
Delphiz
Vou explicar melhor.
Ex:
procedure principal;
begin
//Passando o nome da funcao que quero chamar com os devidos parametros. Pode ate ser o ponteiro(endereco da procecdure) passando como parametro talvez.
exemplo(Nome_da_procedure_com_parametros);
end;
procedure exemplo (fn);
begin
...//codigos
//Estaria chamando minha funcao que passei como parametro
fn;
...//codigos
end;
Gostei + 0
19/09/2003
Cebikyn
[b:99f2400c6f]1.[/b:99f2400c6f] Declare um [b:99f2400c6f]type[/b:99f2400c6f] que representa a função:
type TSuaFuncao = function (const name: String; ordinal: Integer; address: Pointer): Boolean of Object;
Em que [i:99f2400c6f]TSuaFuncao[/i:99f2400c6f] é um nome qualquer, [i:99f2400c6f]function[/i:99f2400c6f] indica para o Delphi que trata-se de uma função e [b:99f2400c6f]of Object[/b:99f2400c6f] deve servir para alguma coisa... Os parâmetros são à sua escolha.
[b:99f2400c6f]2.[/b:99f2400c6f] Crie uma variável que armasenará a função:
var Form1: TForm1; Funcao1: TSuaFuncao;
[b:99f2400c6f]3.[/b:99f2400c6f] Declare a funcao propriamente dita no Form:
private function AquiEstaAFuncao(const name: String; ordinal: Integer; address: Pointer): Boolean;
[b:99f2400c6f]4.[/b:99f2400c6f] Inicie a variável:
Funcao1 := Form1.AquiEstaAFuncao;
[b:99f2400c6f]5.[/b:99f2400c6f] Declare a procedure ou função que receberá a função como parâmetro:
procedure Teste(Funcao: TSuaFuncao); begin Assert( Assigned( funcao )); // verifica se realmente a função foi passada no parâmetro Funcao(Parâmetros); end;
Acho que é só. Se não for isso que vc quer, deixe uma msg.
Gostei + 0
22/09/2003
Delphiz
Só que infelizmente o que realmente quero não é possível fazer. A funcao que eu queria passar nao poderia ter sempre os mesmo parametros. Eu sou obrigado a especificar o tipo da funcao (os parametros teriam que ser os mesmo em qtde e tipo).
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)