LCL Interface Redesign Idea

From Lazarus wiki
Revision as of 00:45, 4 April 2007 by AndrewH (talk | contribs) (This is current Idea for managing the connection to the interface and how it relates to handles)

This is current Idea for the structure of the interface and how it relates to handles


  • Fork a branch of lazarus/
  • Replace TWinControl.Handle with TWinControl.LCLHandle (there should exist no Handle yet)
  • Try to get the LCL compiled and maybe the IDE so it doesn't use the (inefficient) .Handle anymore
  • Introduce .Handle again, now as WSclass call
  • Merge the branches

TWSxxWinControl.CreateHandle Returns a TLCLHandle

TLCLHandle = IInterface;

TxxPrivate = class(TPrivate, TLCLHandle);

TGtkPrivateButton = class(TGtkBin, TLCLHandle);

Other possibilities

{$IFDEF X11} TGtkPrivateWidget = class(TGtkPrivate, ILCLHandle, IX11);


 (AWinControl as IX11).XID

is possible