Right, Helmut, Controls.LookupPath treats the ^ as optional.
@Controls.Relink:
Isn't the need to call Controls.Relink a workaround for a limitation
imposed by a missing Dialog.UpdateXXX procedure.
Ideally, it should not be required in such a case.
The limitation is:
If the variable designator starts with (or contains) a pointer, e.g. TestForms.focus,
then it is not possible to notify an update of that pointer by means of calling something like
Dialog.UpdatePtr(TestForms.focus).
A corresponding Dialog.UpdateXXX is available for all basic types but not for pointers.
The question is if it is possible to introduce such a procedure.
I mean, without changing too much of the inner working of controls.
We have to look if Controls.LookupPath and/or Controls.HandleViewMsg
need to be adapted.
The Dialog.UpdatePtr Procedure would look like this:
Code: Select all
PROCEDURE UpdatePtr* (VAR x: SYSTEM.PTR);
VAR adr: INTEGER;
BEGIN
adr := SYSTEM.ADR(x);
Notify(adr, adr + SIZE(SYSTEM.PTR), {update, guardCheck})
END UpdatePtr;
- Josef