@paweld
FreeVision doesn't meet my needs...
I am wanting a very small/simple example of a form program that looks just like a regular form window but where the titlebar is custom drawn. I want the form and titlebar to look and behave exactly like the default (template) form and titlebar (including mouse dragging and border resizing) but it is implemented using a TPanel and other LCL controls and it is coded by hand - similar to the image attached to this response. Because this would require setting the form's BorderStyle property to "bsNone" the borders and their resizing functionality would need to be manually coded to replace it.
My goal is for users (myself included) to be able to learn how the titlebar and behaviors are implemented so that we can then adapt the coded examples to create our own customized titlebars and forms. The cosmetic appearance of default form windows rarely keeps up with the latest trends of GUIs. If we can learn the basic behaviors of the forms (mostly the borders and titlebars) we can create our own forms that look anyway we want without having to resort to a new technology or third-party controls.
For example: when I learned how Visual Basic .NET draws and implements its titlebars, system menu, minimize and maximize buttons, etc., as well as how to code the resizing of the form borders, I was then able to give my forms any visual appearance I want
using only the default WinForms platforms and without having to resort to the WPF or WinUI platforms. I can simulate any user interface anyone else creates in VB using either of those platforms while by sticking with only the WinForms platform.
This is the
ENTIRE purpose of this thread - for users to learn the coding basics of how the basic form's borders are drawn and resized, how the titlebar and its system menu are created and implemented as well as the Min/Max/Close buttons, how the form is dragged by grabbing the titlebar, etc., so that we can then expand on what we learn to give our user interface any cosmetic appearance we want in Lazarus. Then, I can make my apps simulate the Norton Utilities GUI shown in the original post without having to resort to a separate platform like FreeVision. In fact, if this example is done well, it could be made into a template form for Lazarus in future releases.
This previous thread I found comes close to what I am looking for (but not quite):
https://forum.lazarus.freepascal.org/index.php/topic,33899.0.htmlMaybe I can tinker with it long enough to create the simple example program, but I'd rather someone with far more experience in FreePascal/Lazarus do it so that we know we will be learning from correctly implemented code rather than my amateur code.