Author Topic: Low level window access  (Read 752 times)


  • Full Member
  • ***
  • Posts: 238
Low level window access
« on: January 27, 2020, 10:42:35 pm »
I can't obtain caption-less window and resizable.
When type BorderStyle := bsSizeable is always caption, ale is not resizable.
How to get klow level access to window?
I see it is interfaces dirs:qt5,wince,cocoa,qt,carbon,gtk2,qin32,gtk
which of them I must use for Windows (win32?) and for Linux (gtk2? qt5?), for Linux is depended from Cinnamon,KDE or other?
How write compoanent depends from graphical environment?
Components Combobox,ComboboxEx uses system comboboxes? Because in Linux are Ok, but in Windows slowly (animated) opens.
Menus uses low level access to windows?


  • Hero Member
  • *****
  • Posts: 3664
Re: Low level window access
« Reply #1 on: January 28, 2020, 12:36:30 am »
IN windows (Win32 widget), you can use the GetWindowLong or SetWindowLong.

Those functions can be used to access information about the window at the OS level.

For example

 TheWindowParentHandle := GetWindowLong(Form1.Handle, GWL_HWNDPARENT);

That will return the Handle of the parent, if any..

You need the WINDOWS unit in the uses list for that to work.

I can not say but it may also be possible to do this level of work to some degree using the LCLINTF unit.

The only true wisdom is knowing you know nothing


  • Full Member
  • ***
  • Posts: 238
Re: Low level window access
« Reply #2 on: January 28, 2020, 11:14:55 am »
With LCLIntf can be compiled on Linux, but SetWindowLong...not WS_CAPTION.. has no results on Linux.
Whats means qt5,wince,cocoa,qt,carbon,gtk2,win32,gtk? Which I can use with Linux? qt5 for KDE, gtk2 for Gnome and qt, gtk are old? Which with Cinnamon?
« Last Edit: January 28, 2020, 11:24:27 am by Borneq »


TinyPortal © 2005-2018