It's a trifle more complicated, but....
Do I understand correctly that these are steps to reproduce?
- Add a pagecontrol with 3 tabs
- Add a TShellTreeView and a TShellListview to the first tab
- Add a TStringGrid to the second tab
- Add a TStringGrid and a TImage to the third tab.
You don't write what happens after this...
Sorry, thought it was implied. The project compiles properly, and the page control displays all tabs at both runtime and design time. After using the program (and making minor changes, none of which *ought* to mess things up, mostly changes to a drawn graphic; the tabs vanish at runtime, and still appear at design time.
When I do these steps (see attached demo) everything is fine (Laz 2.2.2/32bit on Win 11/64bit). So, there more to trigger the issue...
Oh yes, absolutely. No idea what, but I have suspicions.
Are there any event handlers attached to the controls on the tabs? What happens if you remove them? It could be that they trigger a silent exception which prevents the other tabs to complete painting.
*
This is possible. However, I just removed all events from Tshelltreeview and TshellListview without changing the behavior. I think I've removed all possible event handlers (the code is there, but not linked, the controls onXXXXX is now blank. This ought to rule that possibility out. There are no event handlers linked to the page control itself.
If you do decide to run the example (which *is* broken), you will need to point the tshell tree view at another location, mine is hardcoded to the files on my disk. I found (on a previous test), that deleting the tshelllistview made the tabs come back.
Still puzzled. Thanks for the help so far.