type PString = ^String; Uint32 = LongInt; int32 = LongInt; Uint16 = word; UINT8 = byte; Int16 = integer; Int8 = shortint; HWND = Uint16; TWndProc = function (ahWnd:HWND;aMsg,wParam,lParam:UINT32):UInt32; PClass = ^TClass; TClass = record Name : PString; WndProc : TWndProc; end; TClassArray = array [0..100] of TClass; PClassArray = ^TClassArray; TUint8Array = array [0..100] of Uint8; PUint8Array = ^TUint8Array; TUint16Array = array [0..100] of Uint16; PUint16Array = ^TUint16Array; TUint32Array = array [0..100] of Uint32; PUint32Array = ^TUint32Array; POINT = record X,Y : int16; end; TRPoint = record X,Y : real; end; PRPoint = ^TRPoint; LPPOINT = ^POINT; RECT = record A,B : Point; end; LPRECT = ^RECT; TMessage = record Message,wParam,lParam : Uint32; end; PMessage = ^TMessage; PMessageList = ^TMessageList; TMessageList = record msg : TMessage; Next : PMessageList; end; TFontDef = record wFont : INT16; aName : PString; end; TFontDefArray = array [0..100] of TFontDef; PFontDefArray = ^TFontDefArray; TPalette = record MenuSelSize : INT16; MenuSelColor : INT16; MenuSelFont : INT16; MenuSelFontSize : INT16; MenuSelFontColor : INT16; ActBorderSize : INT16; ActBorderColor : INT16; NoActBorderSize : INT16; NoActBorderColor : INT16; ActTitleStyle : INT16; ActTitleSize : INT16; ActTitleColor : INT16; ActTitleFont : INT16; ActTitleFontSize : INT16; ActTitleFontColor : INT16; NoActTitleStyle : INT16; NoActTitleSize : INT16; NoActTitleColor : INT16; NoActTitleFont : INT16; NoActTitleFontSize : INT16; NoActTitleFontColor : INT16; WindowBGColor : INT16; WindowStyle : INT16; WindowFontColor : INT16; ThreeDColor1 : INT16; ThreeDColor2 : INT16; ThreeDStyle : INT16; end; PPalette = ^TPalette; HMENU = UINT32; PWindow = ^TWindow; PMenuItem = ^TMenuItem; TMenuItem = record Text : PString; ID : UINT32; Parent : PWindow; ifSubMenu : Boolean; ifActive : Boolean; SubMenu : HMenu; end; TMenuItemArray = array [0..100] of TMenuItem; PMenuItemArray = ^TMenuItemArray; PMenu = ^TMenu; TMenu = record ItemCnt : Uint8; Items : PMenuItemArray; end; PMenuList = ^TMenuList; TMenuList = record Mn : PMenu; Handle : HMenu; Next : PMenuList; end; TWindow = record WClass : PClass; Handle : HWND; Style : UINT32; Parent : PWindow; Title : PString; Menu : PMenu; Palette : PPalette; bActive : Boolean; Pos : RECT; Queue : PMessageList; zOrder : PWindow; Next : PWindow; Brother : PWindow; Child : PWindow; end; PWndList = ^TWndList; TWndList = record wnd : PWindow; Next : PWndList; end; TWindowsArray = array [0..100] of TWindow; PWindowsArray = ^TWindowsArray; PAINTSTRUCT = record gPos : RECT; Font : INT8; FontJus : INT8; FontSize: INT8; Style : INT8; Color : INT8; BgColor : INT8; end; LPPAINTSTRUCT = ^PAINTSTRUCT; TCursor = record HotX,HotY : UINT8; AndMask : array [0..31] of UINT8; XorMask : array [0..31] of UINT8; end; TCursorArr = array [0..100] of TCursor; PCursorArr = ^TCursorArr;