On Sat, 16 Oct 2010, Hans-Peter Diettrich wrote:
And3mD schrieb:
I added bug report about using Tag as Pointers in IDE
http://bugs.freepascal.org/view.php?id=17642
For some reason (read-only???) I could not add a note there, so I'll present
my ideas here:
IMO Tag should become an int64 for all components, to overcome platform and
streaming problems. More properties can be introduced, for best compatibility
with existing code (Tag64, TagPtr). These properties could be based on the
same int64 field, i.e. r/w part of it, and only that field is streamed. And
when we just are extending the type, we also could consider to make it big
enough to hold a method reference...
Using tag as a pointer is plain wrong coding, so this change will not make it.
Moreover, streaming it is pure nonsense: There is no guarantee that your pointer
will point to the same object, or indeed whether it will exist at all when the
program is run.
The IDE code is simply wrong, and should be fixed properly by creating a
TMenuItem descendent that contains a reference to the notebook page, and
use that class when constructing the menu.
Michael.
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel