ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Verificando se uma variável aponta para uma função-RESOLVIDO

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
wprmsite
Novato
Novato


Registrado: Sábado, 20 de Outubro de 2012
Mensagens: 45

MensagemEnviada: Ter Dez 03, 2013 4:22 pm    Assunto: Verificando se uma variável aponta para uma função-RESOLVIDO Responder com Citação

Ola pessoal!

Estou criando um TRichEdit personalizado em Delphi é estou tendo um problema com uma rotina.

Eu criei um ponteiro para uma função.

Código:
type  TPalavraReservada = function (palavra: string) : boolean;


E em um procedimento criei uma variável deste novo tipo.

Código:
 FReservada: TPalavraReservada;

Agora meu problema. Preciso verificar se esta variável, FReserva, esta apontando para alguma função.
Testei desta duas formas:

Código:
function TGrupo.GetPalavraReservada: TPalavraReservada;
begin
 
  if (@Self.FReservada = nil) then
    Result := @PalavraReservadaNula
    else
    Result := Self.FReservada;
end;

Código:
function TGrupo.GetPalavraReservada: TPalavraReservada;
begin


  if (Self.FReservada = nil) then
    Result := @PalavraReservadaNula
    else
    Result := Self.FReservada;
end;


No segundo teste nem compilo. Já no primeiro compila mas não funciona, pois antes de chama este método inicializei a variável FReserva com nil e mesmo assim a condição foi verdadeira, e percebe que a variável, ainda assim, continha um endereço atribuido.

Alguém ai pode me ajudar?


Editado pela última vez por wprmsite em Qui Jan 09, 2014 9:58 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rafael_acacio
Novato
Novato


Registrado: Segunda-Feira, 25 de Novembro de 2013
Mensagens: 15

MensagemEnviada: Ter Dez 03, 2013 4:26 pm    Assunto: Responder com Citação

Tenta assim

if Assigned(FReservada) then
ShowMessage('Sim');
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
wprmsite
Novato
Novato


Registrado: Sábado, 20 de Outubro de 2012
Mensagens: 45

MensagemEnviada: Ter Dez 03, 2013 7:57 pm    Assunto: Responder com Citação

Obrigado Rafael! Era isto mesmo!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcocunhasilva
Profissional
Profissional


Registrado: Segunda-Feira, 21 de Agosto de 2006
Mensagens: 740
Localização: Porto Alegre

MensagemEnviada: Ter Dez 03, 2013 8:18 pm    Assunto: Responder com Citação

Olá, wprmsite, tudo bem?

Por favor, vá até seu primeiro post e coloque após o titulo "- [Resolvido]", para que outros usuários com o mesmo problema ou semelhante, vejam como foi feito.

Obrigado!

T++
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB