<div dir="ltr"><div>Hello Lazarus mailing list members,</div><div><br></div><div>I am using Lazarus 49537, FPC 2.6.4, and Windows 8.1 64-bit.</div><div><br></div><div>If a Form is hidden via the .Hide function, and later another application uses the ShowWindow function to show the hidden form, TLabel and TImage components are not drawn, the taskbar icon is not restored, Form.WindowState is still wsMinimized, and Form1.Visible is still False.</div><div><br></div><div>Please consider the attached demo program and possible patch.</div><div><br></div><div><br></div><div>To implement "minimize to system tray" functionality in a program in the Application.Minimize event one can call Form1.Hide.<br></div><div><br></div><div>One can later restore the application by calling Form1.ShowOnTop. This sets the WindowState and Visible properties, and calls BringToFront. The form and all components are restored properly.</div><div><br></div><div>If the user minimizes the application, and then later tries to start a second copy of the application, the first copy should be shown instead. To implement this:</div><div><br></div><div>var</div><div>  h: THandle;</div><div>begin</div><div>  h := FindWindow(nil, 'Form1');</div><div>  SetForegroundWindow(h);</div><div>  ShowWindow(h, SW_RESTORE);</div><div>end;</div><div><br></div><div>However, at this point Form1.WindowState is still set to wsMinimized and Form1.Visible is still set to False. The taskbar icon is not drawn. TLabel and TImage components are not drawn.</div><div><br></div><div>A small change in '\lcl\interfaces\win32\win32callback.inc' fixes the drawing of the taskbar icon and the TLabel and TImage components. I don't know if this is a good place to make this change though, or what other effects this might have.</div><div><br></div><div>I appreciate any comments or suggestions. Thank you for considering this issue.</div><div><br></div><div><br></div></div>