Action sequence:
- - Create and show a form with one value of ShowInTaskbar
- - Change that value after the fact
- - Optionally - hide the form and show it again, albeit this workaround does not have to be needed
If you start from one value of the property - then after the fact (after a form being shown for the first time) changing value is appropriately changing the visible applicaiton behavior. If you start from another value - the visible application behavior is not changed, making user think the function was not implemented.
More details in issue tracker, #39883
One can just prohibit changing the property as soon as
TForm.HandleAllocated = True, but this might be unneededly restrictive.
Other option would be to patch the LCL sources to make the behaviour consistent.
This, however, requires a choice to be made and documented, WHAT is the goal, what is the "ideal behavior" that implementaiton should strive to implement.
https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/39883#note_1090054614In this linked comment i outlined the existing choices, and also provided a demo-project, that, i believe, simulates possible patching implementations, so you could test and feel it.