wprmsite 0 Denunciar post Postado Dezembro 3, 2013 Ola pessoal! Estou criando um TRichEdit personalizado em Delphi é estou tendo um problema com uma rotina. Eu criei um ponteiro para uma função. type TPalavraReservada = function (palavra: string) : boolean; E em um procedimento criei uma variável deste novo tipo. FReservada: TPalavraReservada; Agora meu problema. Preciso verificar se esta variável, FReserva, esta apontando para alguma função. Testei desta duas formas: function TGrupo.GetPalavraReservada: TPalavraReservada; begin if (@Self.FReservada = nil) then Result := @PalavraReservadaNula else Result := Self.FReservada; end; 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? Compartilhar este post Link para o post Compartilhar em outros sites
Roberto Fagundes 40 Denunciar post Postado Dezembro 3, 2013 Será que esse link pode te ajudar ?? http://www.arquivodecodigos.net/dicas/delphi-como-usar-nil-para-testar-ou-indicar-que-um-ponteiro-nao-referencia-nenhuma-posicao-de-memoria-2851.html Compartilhar este post Link para o post Compartilhar em outros sites
thyagoollive 2 Denunciar post Postado Dezembro 3, 2013 Olá. Utilize as PROPERTY. property OnPalavraReservada: TPalavraReservada read FReservada write FReservada; Mas, para verificar, utilize Assigned. Exemplo: if Assigned(Self.FReservada) then // significa que existe Self.FReservada(""); Compartilhar este post Link para o post Compartilhar em outros sites
wprmsite 0 Denunciar post Postado Dezembro 3, 2013 Olá. Utilize as PROPERTY. property OnPalavraReservada: TPalavraReservada read FReservada write FReservada; Mas, para verificar, utilize Assigned. Exemplo: if Assigned(Self.FReservada) then // significa que existe Self.FReservada(""); Muito obrigado "thyagoollive"! Era isto mesmo! Compartilhar este post Link para o post Compartilhar em outros sites
thyagoollive 2 Denunciar post Postado Dezembro 4, 2013 De nada wprmsite. Pode contar com a gente. Qualquer coisa é só falar (: Compartilhar este post Link para o post Compartilhar em outros sites