| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
wprmsite Novato

Registrado: Sábado, 20 de Outubro de 2012 Mensagens: 45
|
Enviada: Ter Dez 03, 2013 4:22 pm Assunto: Verificando se uma variável aponta para uma função-RESOLVIDO |
|
|
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 |
|
 |
rafael_acacio Novato


Registrado: Segunda-Feira, 25 de Novembro de 2013 Mensagens: 15
|
Enviada: Ter Dez 03, 2013 4:26 pm Assunto: |
|
|
Tenta assim
if Assigned(FReservada) then
ShowMessage('Sim'); |
|
| Voltar ao Topo |
|
 |
wprmsite Novato

Registrado: Sábado, 20 de Outubro de 2012 Mensagens: 45
|
Enviada: Ter Dez 03, 2013 7:57 pm Assunto: |
|
|
| Obrigado Rafael! Era isto mesmo! |
|
| Voltar ao Topo |
|
 |
marcocunhasilva Profissional

Registrado: Segunda-Feira, 21 de Agosto de 2006 Mensagens: 740 Localização: Porto Alegre
|
Enviada: Ter Dez 03, 2013 8:18 pm Assunto: |
|
|
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 |
|
 |
|