The LCL in various platforms
Introduction
Many LCL properties, methods and other functionality represent a concept, which is then mapped to a specific native behavior in each platform. This sections aims at clarifying LCL behavior which changes across platforms by clarifying what is to be expected in each platform so that more reliable software can be built.
TForm.BorderStyle
The BorderStyle of a Form represents a kind of form, and different platforms have different standards about how should the border of each kind of form be, and the LCL respects that. For example, message dialogs are usually not resizable under Windows, but resizable under X11-based Unixes. By using bsDialog it is possible to create a form which will have the adequate dialog appearance in every platform. Bellow is a full list of expected behaviors:
Windows
BorderStyle | Has Border? | Resizable? | Decoration |
---|---|---|---|
bsNone | No | No | None |
bsDialog | Yes | No | Only X (Close) |
bsSingle | Yes | No | All |
bsSizable | Yes | Yes | All |
bsSizeToolWin | Yes | Yes | Only X and small title |
bsToolWin | Yes | No | Only X and small title |
Windows CE
For Windows CE see here: Windows_CE_Development_Notes#Positioning_and_size_of_Dialogs_and_Forms
Gtk
BorderStyle | Has Border? | Resizable? | Decoration |
---|---|---|---|
bsNone | No | No | None |
bsDialog | Yes | Yes* | All* |
bsSingle | Yes | No (If the WM allows) | All |
bsSizable | Yes | Yes | All |
bsSizeToolWin | Yes | Yes | All* |
bsToolWin | Yes | No (If the WM allows) | All* |
Values with * differ from the Windows Implementation.
Carbon