Added placeholders and they mostly work, but if I touch an IWEdit control through an async call such as enabling, disabling, or setting the text the placeholder then disappears. If I update the control via a synchronous call the placeholder reappears and works until another async call updates the control. This occurs with or without templates.
I can't reproduce this behavior.
What are the properties that you are changing? I'm changing font, color, border, and several things and if I clear the text the placeholder is there. The attribute doesn't change in an async call....
I'm able to reproduce with a simple new IW project with an IWEdit (placeholder set in ExtraTagParams) and a button which toggles the 'Enabled' property via async:
Pic 1: on startup, placeholder visible.
Pic 2: toggle enabled, placeholder disappears.
Pic 3: toggle enabled, placeholder still not active.
Pic 4: full page refresh, placeholder appears and works normally.
Using C++ builder 10.2.3 + IW 15.1.4
Took a quick look at the IW source - the IWEdit 'Hint' property controls the placeholder if 'Attributes->iaPLaceholder' is true. So all works if set iaPLaceholder = true and 'Hint' = desired placeholder.
Yes, the hint controls the placeholder attribute.