Am 12.04.2019 um 20:23 schrieb Ondrej Pokorny via lazarus:
On 12.04.2019 19:35, Werner Pamler via lazarus wrote:
I don't know: is this changed or am I fooled by my memory? I was rather sure that when the signature of a published event is changed, forms saved with the old signature cannot be read without error. But now I notice that this is not true any more.

AFAIR it has always been so. Didn't you mix up with virtual methods?

I mixed up loading and and toggling between form and code view, and my memory refers to Delphi. I just tested it again: After loading a D7 project with a VirtualTreeView into Delphi XE2 and pressing F12 to toggle to Form view I get the error "Method ... to which VirtualStringTree1.OnGetText refers has an incompatible parameter list" because the D7 event signature contains a widestring parameter, but the XE2 event contains a normal string parameter. - When i load the toolsdemo mentioned in the first message into Lazarus and press F12 nothing happens although the parameter list is different. Strange.


You must never change the signature of published events. You pick up a new name, deprecate the old one and after a stable release you delete the deprecated one. In this way you still break compatibility, but in a way that the user is notified about it.

I hope you will have more understanding for breaking changes in the future after this experience :)

Don't worry, it will be changed shorty, but I wanted to have an example which every interested reader could test easily without having to install anything.
--
_______________________________________________
lazarus mailing list
[email protected]
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to