On 27/05/2011 02:07, cobines wrote:
2011/5/26 Martin<[email protected]>:
Here is what happens
...
Ah, now I see. Thanks for explaining.
If I think of
edtIconFileName.Text
as
edtIconFileName.SetText(const s);
it becomes more visible that in the trigger edtIconFileNameChange I
cannot change what I am assigning.
At the moment: yes.
I don't csay this is correct. That depends if this "const" was placed
there knowing and intending this (side) effect. Or if it was by
accident. (IMHO I assume the 2nd)
So, from what you're saying it is enough to temporarily increase
reference count before assigning to edtIconFileName.Text. If I modify
the code to be like this:
procedure TfrmFileAssoc.btnAddNewTypeClick(Sender: TObject);
var
s: String;
begin
s := TExtAction(Exts.Items[0]).Icon;
edtIconFileName.Text:= s;
end;
there is no crash and refcount is 2 when SetText is called. And 's' is
finalized after assignment to Text.
but be aware, if you switch the optimizer on, it may optimize this away...
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus