[fpc-devel] Indy IdHTTP
jonas.maebe at elis.ugent.be
Sun May 24 09:39:27 CEST 2009
On 24 May 2009, at 04:32, ABorka wrote:
> In FPC/Lazarus:
> procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: String;
> var NumRedirect: Integer; var Handled: Boolean; var VMethod:
> ShowMessage('Redirected to:' + dest);
> However, it seems that the parameter "dest" is passing a pointer to
> a pointer and not just a pointer to the string (displaying only some
> strange characters instead of the redirecting URL).
It is normal that dest is (implicitly) a pointer to a pointer. A "var"
parameter means that the address of some variable is passed to a
function, rather than only its value.
Now, an (Ansi)String is a pointer to an array of characters, with some
extra data before it. So if you have a "var" parameter of the type
(Ansi)String, you get a pointer to that "pointer to an array of
characters". Otherwise you would be unable to change the address
stored inside that pointer (you would only be able to permanently
change the data in the array it points to, but not make it point to a
different array in a way that persists after the function exits).
If you are only using Pascal code in the real program, this should all
be handled transparently for you.
More information about the fpc-devel