Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Usando ponteiro na função


Paulo Henrique de Assis

Question

Olá pessoal.

Gostaria em saber se é possível trabalhar com ponteiro da seguinte maneira:

function TForm1.fValor(Teste: string): integer;

var pvalor: ^String;

begin

pvalor := @teste;

pvalor^ := 'Retorno';

Result:=1;

end;

Quando for chamar a função, no evento do click do botão eu declaro uma variavel com o nome Valor do tipo String, conforme abaixo:

procedure TForm1.Button3Click(Sender: TObject);

var Valor : String;

begin

fValor(Valor);

end;

Quando eu executar a função eu gostaria em passar o valor do ponteiro pValor, que seria 'Retorno' para a minha variavel Valor do evento do botão!

Do jeito que está, acontece a seguinte situação: quando estou debugando dentro função a minha variavel Valor recebe o 'Retorno', mas quando saio da função a minha variavel Valor simplismente zera!

OBS: não quero inserir o var da assinatura da função (function TForm1.fValor(var Teste: string): integer).

Gostaria em saber aonde estou errando??

T+

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

maneira correta:

function TForm1.fValor(Teste: string): integer;
var pvalor: ^String;
begin
   Teste := '123';
   pvalor := @Teste;
   Result := strtoint(pvalor^);
end;

procedure TForm1.Button2Click(Sender: TObject);
var Valor : string;
begin
   showmessage(inttostr(fValor(Valor)));
end;

abraço

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...