home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibylft1.zip / DOC.DAT / DOC / SPCC / FORMS.PAS < prev    next >
Pascal/Delphi Source File  |  1997-04-08  |  119KB  |  2,702 lines

  1.  
  2. {╔══════════════════════════════════════════════════════════════════════════╗
  3.  ║                                                                          ║
  4.  ║     Sibyl Portable Component Classes                                     ║
  5.  ║                                                                          ║
  6.  ║     Copyright (c) 1995,97 SpeedSoft Germany,   All rights reserved.      ║
  7.  ║                                                                          ║
  8.  ╚══════════════════════════════════════════════════════════════════════════╝}
  9.  
  10. UNIT Forms;
  11.  
  12. {$b-}
  13.  
  14. INTERFACE
  15.  
  16. {$IFDEF OS2}
  17. USES Os2Def,BseDos,PmWin,PmGpi,PmDev,PmStdDlg,PmBitmap,PmHelp;
  18. {$ENDIF}
  19.  
  20. {$IFDEF Win32}
  21. USES WinDef,WinBase,WinNT,WinUser,WinGDI,CommCtrl;
  22. {$ENDIF}
  23.  
  24. USES Messages,Dos,SysUtils,Classes;
  25.  
  26.  
  27. TYPE
  28.     {TCommand type encapsulates WM_COMMAND messages. Commands apply
  29.      to buttons and menu entries. There are some predefined commands that
  30.      appear within the inspector. If you define your own command constants
  31.      you should use values above cmUser to avoid conflicts with internal
  32.      commands}
  33. {$M+}
  34.     TCommand           = LONGWORD;
  35.  
  36. CONST
  37.     {predefined Command Ids}
  38.     cmNull             = TCommand(0);
  39.     cmBase             = $8000;
  40.  
  41.     cmFile             = TCommand(cmBase+1);
  42.     cmOpen             = TCommand(cmBase+2);
  43.     cmNew              = TCommand(cmBase+3);
  44.     cmSave             = TCommand(cmBase+5);
  45.     cmSaveAs           = TCommand(cmBase+6);
  46.     cmSaveAll          = TCommand(cmBase+7);
  47.     cmPrint            = TCommand(cmBase+8);
  48.     cmExit             = TCommand(cmBase+9);
  49.     cmAbout            = TCommand(cmBase+10);
  50.     cmUndo             = TCommand(cmBase+11);
  51.     cmRedo             = TCommand(cmBase+12);
  52.     cmCut              = TCommand(cmBase+13);
  53.     cmCopy             = TCommand(cmBase+14);
  54.     cmPaste            = TCommand(cmBase+15);
  55.     cmTile             = TCommand(cmBase+16);
  56.     cmCascade          = TCommand(cmBase+17);
  57.     cmCloseAll         = TCommand(cmBase+18);
  58.     cmNext             = TCommand(cmBase+19);
  59.     cmPrevious         = TCommand(cmBase+20);
  60.     cmCloseTop         = TCommand(cmBase+21);
  61.     cmMaximize         = TCommand(cmBase+22);
  62.     cmMinimize         = TCommand(cmBase+23);
  63.     cmRestore          = TCommand(cmBase+24);
  64.     cmFind             = TCommand(cmBase+25);
  65.     cmReplace          = TCommand(cmBase+26);
  66.     cmHelpIndex        = TCommand(cmBase+27);
  67.     cmHelpContents     = TCommand(cmBase+28);
  68.     cmHelpOnHelp       = TCommand(cmBase+29);
  69.     cmKeysHelp         = TCommand(cmBase+30);
  70.     cmTopicSearch      = TCommand(cmBase+31);
  71.     cmChangeDir        = TCommand(cmBase+32);
  72.     cmSearchAgain      = TCommand(cmBase+33);
  73.     cmSelectAll        = TCommand(cmBase+34);
  74.     cmDeselectAll      = TCommand(cmBase+35);
  75.     cmBack             = TCommand(cmBase+36);
  76.     cmForward          = TCommand(cmBase+37);
  77.     cmDelete           = TCommand(cmBase+38);
  78.     cmCreateDir        = TCommand(cmBase+39);
  79.  
  80.     cmOk               = TCommand(cmBase+50);
  81.     cmCancel           = TCommand(cmBase+51);
  82.     cmHelp             = TCommand(cmBase+52);
  83.     cmYes              = TCommand(cmBase+53);
  84.     cmNo               = TCommand(cmBase+54);
  85.     cmClose            = TCommand(cmBase+55);
  86.     cmAbort            = TCommand(cmBase+56);
  87.     cmRetry            = TCommand(cmBase+57);
  88.     cmIgnore           = TCommand(cmBase+58);
  89.     cmAll              = TCommand(cmBase+59);
  90.     cmAccept           = TCommand(cmBase+60);
  91.     cmDiscard          = TCommand(cmBase+61);
  92.     cmDefault          = TCommand(cmBase+62);
  93.  
  94.     cmUser             = TCommand(cmBase+$1000);
  95. {$M-}
  96.  
  97. CONST
  98.     WM_CAPTUREFOCUS           = WM_USER+1;
  99.     WM_DDE_DESTROY            = WM_USER+2;
  100.  
  101.     CM_COMMAND                = WM_COMMAND;
  102.     CM_PARENTPENCOLORCHANGED  = cmBase+110;
  103.     CM_PARENTCOLORCHANGED     = cmBase+111;
  104.     CM_PARENTFONTCHANGED      = cmBase+112;
  105.     CM_BUTTONPRESSED          = cmBase+120;
  106.     CM_RELEASE                = cmBase+125;
  107.     CM_TEXTCHANGED            = cmBase+126;
  108.     CM_UPDATEBUTTONS          = cmBase+127;
  109.  
  110.  
  111. CONST
  112.     {Caret Timer values for use with BlinkTime}
  113. {$M+}
  114.     ctNormal           = 500;
  115.     ctFast             = 100;
  116. {$M-}
  117.  
  118. TYPE
  119.     {General keycode type. Keycode constants apply to ScanEvent methods}
  120. {$M+}
  121.     TKeyCode           = LONGWORD;
  122.  
  123. CONST
  124.     {predefined Keyboars codes. To determine if Ctrl,Shift or Alt was
  125.      pressed together with the key you may use boolean operations}
  126.     kbNull             = TKeyCode(0);
  127.     kb_VK              = 256;
  128.     kb_Ctrl            = 512;
  129.     kb_Shift           = 1024;
  130.     kb_Alt             = 2048;
  131.     kb_Char            = 4096;
  132.  
  133.     kbF1               = TKeyCode(kb_VK + VK_F1);
  134.     kbF2               = TKeyCode(kb_VK + VK_F2);
  135.     kbF3               = TKeyCode(kb_VK + VK_F3);
  136.     kbF4               = TKeyCode(kb_VK + VK_F4);
  137.     kbF5               = TKeyCode(kb_VK + VK_F5);
  138.     kbF6               = TKeyCode(kb_VK + VK_F6);
  139.     kbF7               = TKeyCode(kb_VK + VK_F7);
  140.     kbF8               = TKeyCode(kb_VK + VK_F8);
  141.     kbF9               = TKeyCode(kb_VK + VK_F9);
  142.     kbF10              = TKeyCode(kb_VK + VK_F10);
  143.     kbF11              = TKeyCode(kb_VK + VK_F11);
  144.     kbF12              = TKeyCode(kb_VK + VK_F12);
  145.     kbCLeft            = TKeyCode(kb_VK + VK_LEFT);
  146.     kbCRight           = TKeyCode(kb_VK + VK_RIGHT);
  147.     kbCUp              = TKeyCode(kb_VK + VK_UP);
  148.     kbCDown            = TKeyCode(kb_VK + VK_DOWN);
  149.     kbDel              = TKeyCode(kb_VK + VK_DELETE);
  150.     kbIns              = TKeyCode(kb_VK + VK_INSERT);
  151.     kbEnd              = TKeyCode(kb_VK + VK_END);
  152.     kbHome             = TKeyCode(kb_VK + VK_HOME);
  153.     {$IFDEF OS2}
  154.     kbPageDown         = TKeyCode(kb_VK + VK_PAGEDOWN);
  155.     kbPageUp           = TKeyCode(kb_VK + VK_PAGEUP);
  156.     kbBkSp             = TKeyCode(kb_VK + VK_BACKSPACE);
  157.     kbCR               = TKeyCode(kb_VK + VK_NEWLINE);
  158.     kbESC              = TKeyCode(kb_VK + VK_ESC);
  159.     kbCapsLock         = TKeyCode(kb_VK + VK_CAPSLOCK);
  160.     kbScrollLock       = TKeyCode(kb_VK + VK_SCRLLOCK);
  161.     kbEnter            = TKeyCode(kb_VK + VK_ENTER);
  162.     kbPrintScrn        = TKeyCode(kb_VK + VK_PRINTSCRN);
  163.     kbCtrl             = TKeyCode(kb_VK + VK_CTRL + kb_Ctrl);
  164.     kbAlt              = TKeyCode(kb_VK + VK_ALT + kb_Alt);
  165.     kbAltGraf          = TKeyCode(kb_VK + VK_ALTGRAF);
  166.     kbBackTab          = TKeyCode(kb_VK + VK_BACKTAB);
  167.     kbBreak            = TKeyCode(kb_VK + VK_BREAK);
  168.     {$ENDIF}
  169.     {$IFDEF Win32}
  170.     kbPageDown         = TKeyCode(kb_VK + VK_NEXT);
  171.     kbPageUp           = TKeyCode(kb_VK + VK_PRIOR);
  172.     kbBkSp             = TKeyCode(kb_VK + VK_BACK);
  173.     kbCR               = TKeyCode(kb_VK + VK_RETURN);
  174.     kbESC              = TKeyCode(kb_VK + VK_ESCAPE);
  175.     kbCapsLock         = TKeyCode(kb_VK + VK_CAPITAL);
  176.     kbScrollLock       = TKeyCode(kb_VK + VK_SCROLL);
  177.     kbEnter            = TKeyCode(kb_VK + VK_RETURN);
  178.     kbPrintScrn        = TKeyCode(kb_VK + VK_PRINT);
  179.     kbCtrl             = TKeyCode(kb_VK + VK_CONTROL + kb_Ctrl);
  180.     kbAlt              = TKeyCode(kb_VK + VK_MENU + kb_Alt);
  181.     kbAltGraf          = TKeyCode(kb_VK + VK_MENU + kb_Alt + kb_Ctrl);
  182.     kbBackTab          = TKeyCode(kb_VK + VK_TAB);
  183.     kbBreak            = TKeyCode(kb_VK + VK_ESCAPE);    {?}
  184.     {$ENDIF}
  185.     kbTab              = TKeyCode(kb_VK + VK_TAB);
  186.     kbNumLock          = TKeyCode(kb_VK + VK_NUMLOCK);
  187.     kbSpace            = TKeyCode(kb_VK + VK_SPACE);
  188.     kbPause            = TKeyCode(kb_VK + VK_PAUSE);
  189.     kbShift            = TKeyCode(kb_VK + VK_SHIFT + kb_Shift);
  190.  
  191.     {Shift Codes are basic codes + kb_Shift}
  192.     kbShiftF1          = TKeyCode(kb_Shift + kbF1);
  193.     kbShiftF2          = TKeyCode(kb_Shift + kbF2);
  194.     kbShiftF3          = TKeyCode(kb_Shift + kbF3);
  195.     kbShiftF4          = TKeyCode(kb_Shift + kbF4);
  196.     kbShiftF5          = TKeyCode(kb_Shift + kbF5);
  197.     kbShiftF6          = TKeyCode(kb_Shift + kbF6);
  198.     kbShiftF7          = TKeyCode(kb_Shift + kbF7);
  199.     kbShiftF8          = TKeyCode(kb_Shift + kbF8);
  200.     kbShiftF9          = TKeyCode(kb_Shift + kbF9);
  201.     kbShiftF10         = TKeyCode(kb_Shift + kbF10);
  202.     kbShiftF11         = TKeyCode(kb_Shift + kbF11);
  203.     kbShiftF12         = TKeyCode(kb_Shift + kbF12);
  204.     kbShiftCLeft       = TKeyCode(kb_Shift + kbCLeft);
  205.     kbShiftCRight      = TKeyCode(kb_Shift + kbCRight);
  206.     kbShiftCUp         = TKeyCode(kb_Shift + kbCUp);
  207.     kbShiftCDown       = TKeyCode(kb_Shift + kbCDown);
  208.     kbShiftDel         = TKeyCode(kb_Shift + kbDel);
  209.     kbShiftIns         = TKeyCode(kb_Shift + kbIns);
  210.     kbShiftEnd         = TKeyCode(kb_Shift + kbEnd);
  211.     kbShiftHome        = TKeyCode(kb_Shift + kbHome);
  212.     kbShiftPageDown    = TKeyCode(kb_Shift + kbPageDown);
  213.     kbShiftPageUp      = TKeyCode(kb_Shift + kbPageUp);
  214.     kbShiftBkSp        = TKeyCode(kb_Shift + kbBkSp);
  215.     kbShiftCR          = TKeyCode(kb_Shift + kbCR);
  216.     kbShiftSpace       = TKeyCode(kb_Shift + kbSpace);
  217.     kbShiftTab         = TKeyCode(kb_Shift + kbBackTab);
  218.     kbShiftEnter       = TKeyCode(kb_Shift + kbEnter);
  219.     kbShiftPause       = TKeyCode(kb_Shift + kbPause);
  220.     kbShiftBreak       = TKeyCode(kb_Shift + kbBreak);
  221.  
  222.     {Ctrl codes are basic codes + kbCtrl}
  223.     kbCtrl0            = TKeyCode(kb_Ctrl + kb_Char + 48);
  224.     kbCtrl1            = TKeyCode(kb_Ctrl + kb_Char + 49);
  225.     kbCtrl2            = TKeyCode(kb_Ctrl + kb_Char + 50);
  226.     kbCtrl3            = TKeyCode(kb_Ctrl + kb_Char + 51);
  227.     kbCtrl4            = TKeyCode(kb_Ctrl + kb_Char + 52);
  228.     kbCtrl5            = TKeyCode(kb_Ctrl + kb_Char + 53);
  229.     kbCtrl6            = TKeyCode(kb_Ctrl + kb_Char + 54);
  230.     kbCtrl7            = TKeyCode(kb_Ctrl + kb_Char + 55);
  231.     kbCtrl8            = TKeyCode(kb_Ctrl + kb_Char + 56);
  232.     kbCtrl9            = TKeyCode(kb_Ctrl + kb_Char + 57);
  233.     kbCtrlA            = TKeyCode(kb_Ctrl + kb_Char + 97);
  234.     kbCtrlB            = TKeyCode(kb_Ctrl + kb_Char + 98);
  235.     kbCtrlC            = TKeyCode(kb_Ctrl + kb_Char + 99);
  236.     kbCtrlD            = TKeyCode(kb_Ctrl + kb_Char + 100);
  237.     kbCtrlE            = TKeyCode(kb_Ctrl + kb_Char + 101);
  238.     kbCtrlF            = TKeyCode(kb_Ctrl + kb_Char + 102);
  239.     kbCtrlG            = TKeyCode(kb_Ctrl + kb_Char + 103);
  240.     kbCtrlH            = TKeyCode(kb_Ctrl + kb_Char + 104);
  241.     kbCtrlI            = TKeyCode(kb_Ctrl + kb_Char + 105);
  242.     kbCtrlJ            = TKeyCode(kb_Ctrl + kb_Char + 106);
  243.     kbCtrlK            = TKeyCode(kb_Ctrl + kb_Char + 107);
  244.     kbCtrlL            = TKeyCode(kb_Ctrl + kb_Char + 108);
  245.     kbCtrlM            = TKeyCode(kb_Ctrl + kb_Char + 109);
  246.     kbCtrlN            = TKeyCode(kb_Ctrl + kb_Char + 110);
  247.     kbCtrlO            = TKeyCode(kb_Ctrl + kb_Char + 111);
  248.     kbCtrlP            = TKeyCode(kb_Ctrl + kb_Char + 112);
  249.     kbCtrlQ            = TKeyCode(kb_Ctrl + kb_Char + 113);
  250.     kbCtrlR            = TKeyCode(kb_Ctrl + kb_Char + 114);
  251.     kbCtrlS            = TKeyCode(kb_Ctrl + kb_Char + 115);
  252.     kbCtrlT            = TKeyCode(kb_Ctrl + kb_Char + 116);
  253.     kbCtrlU            = TKeyCode(kb_Ctrl + kb_Char + 117);
  254.     kbCtrlV            = TKeyCode(kb_Ctrl + kb_Char + 118);
  255.     kbCtrlW            = TKeyCode(kb_Ctrl + kb_Char + 119);
  256.     kbCtrlX            = TKeyCode(kb_Ctrl + kb_Char + 120);
  257.     kbCtrlY            = TKeyCode(kb_Ctrl + kb_Char + 121);
  258.     kbCtrlZ            = TKeyCode(kb_Ctrl + kb_Char + 122);
  259.     kbCtrlF1           = TKeyCode(kb_Ctrl + kbF1);
  260.     kbCtrlF2           = TKeyCode(kb_Ctrl + kbF2);
  261.     kbCtrlF3           = TKeyCode(kb_Ctrl + kbF3);
  262.     kbCtrlF4           = TKeyCode(kb_Ctrl + kbF4);
  263.     kbCtrlF5           = TKeyCode(kb_Ctrl + kbF5);
  264.     kbCtrlF6           = TKeyCode(kb_Ctrl + kbF6);
  265.     kbCtrlF7           = TKeyCode(kb_Ctrl + kbF7);
  266.     kbCtrlF8           = TKeyCode(kb_Ctrl + kbF8);
  267.     kbCtrlF9           = TKeyCode(kb_Ctrl + kbF9);
  268.     kbCtrlF10          = TKeyCode(kb_Ctrl + kbF10);
  269.     kbCtrlF11          = TKeyCode(kb_Ctrl + kbF11);
  270.     kbCtrlF12          = TKeyCode(kb_Ctrl + kbF12);
  271.     kbCtrlCLeft        = TKeyCode(kb_Ctrl + kbCLeft);
  272.     kbCtrlCRight       = TKeyCode(kb_Ctrl + kbCRight);
  273.     kbCtrlCUp          = TKeyCode(kb_Ctrl + kbCUp);
  274.     kbCtrlCDown        = TKeyCode(kb_Ctrl + kbCDown);
  275.     kbCtrlDel          = TKeyCode(kb_Ctrl + kbDel);
  276.     kbCtrlIns          = TKeyCode(kb_Ctrl + kbIns);
  277.     kbCtrlEnd          = TKeyCode(kb_Ctrl + kbEnd);
  278.     kbCtrlHome         = TKeyCode(kb_Ctrl + kbHome);
  279.     kbCtrlPageDown     = TKeyCode(kb_Ctrl + kbPageDown);
  280.     kbCtrlPageUp       = TKeyCode(kb_Ctrl + kbPageUp);
  281.     kbCtrlBkSp         = TKeyCode(kb_Ctrl + kbBkSp);
  282.     kbCtrlCR           = TKeyCode(kb_Ctrl + kbCR);
  283.     kbCtrlSpace        = TKeyCode(kb_Ctrl + kbSpace);
  284.     kbCtrlTab          = TKeyCode(kb_Ctrl + kbTab);
  285.     kbCtrlEnter        = TKeyCode(kb_Ctrl + kbEnter);
  286.     kbCtrlPause        = TKeyCode(kb_Ctrl + kbPause);
  287.     kbCtrlBreak        = TKeyCode(kb_Ctrl + kbBreak);
  288.  
  289.     {Alt codes are basic codes + kbAlt}
  290.     kbAlt0             = TKeyCode(kb_Alt + kb_Char + 48);
  291.     kbAlt1             = TKeyCode(kb_Alt + kb_Char + 49);
  292.     kbAlt2             = TKeyCode(kb_Alt + kb_Char + 50);
  293.     kbAlt3             = TKeyCode(kb_Alt + kb_Char + 51);
  294.     kbAlt4             = TKeyCode(kb_Alt + kb_Char + 52);
  295.     kbAlt5             = TKeyCode(kb_Alt + kb_Char + 53);
  296.     kbAlt6             = TKeyCode(kb_Alt + kb_Char + 54);
  297.     kbAlt7             = TKeyCode(kb_Alt + kb_Char + 55);
  298.     kbAlt8             = TKeyCode(kb_Alt + kb_Char + 56);
  299.     kbAlt9             = TKeyCode(kb_Alt + kb_Char + 57);
  300.     kbAltA             = TKeyCode(kb_Alt + kb_Char + 97);
  301.     kbAltB             = TKeyCode(kb_Alt + kb_Char + 98);
  302.     kbAltC             = TKeyCode(kb_Alt + kb_Char + 99);
  303.     kbAltD             = TKeyCode(kb_Alt + kb_Char + 100);
  304.     kbAltE             = TKeyCode(kb_Alt + kb_Char + 101);
  305.     kbAltF             = TKeyCode(kb_Alt + kb_Char + 102);
  306.     kbAltG             = TKeyCode(kb_Alt + kb_Char + 103);
  307.     kbAltH             = TKeyCode(kb_Alt + kb_Char + 104);
  308.     kbAltI             = TKeyCode(kb_Alt + kb_Char + 105);
  309.     kbAltJ             = TKeyCode(kb_Alt + kb_Char + 106);
  310.     kbAltK             = TKeyCode(kb_Alt + kb_Char + 107);
  311.     kbAltL             = TKeyCode(kb_Alt + kb_Char + 108);
  312.     kbAltM             = TKeyCode(kb_Alt + kb_Char + 109);
  313.     kbAltN             = TKeyCode(kb_Alt + kb_Char + 110);
  314.     kbAltO             = TKeyCode(kb_Alt + kb_Char + 111);
  315.     kbAltP             = TKeyCode(kb_Alt + kb_Char + 112);
  316.     kbAltQ             = TKeyCode(kb_Alt + kb_Char + 113);
  317.     kbAltR             = TKeyCode(kb_Alt + kb_Char + 114);
  318.     kbAltS             = TKeyCode(kb_Alt + kb_Char + 115);
  319.     kbAltT             = TKeyCode(kb_Alt + kb_Char + 116);
  320.     kbAltU             = TKeyCode(kb_Alt + kb_Char + 117);
  321.     kbAltV             = TKeyCode(kb_Alt + kb_Char + 118);
  322.     kbAltW             = TKeyCode(kb_Alt + kb_Char + 119);
  323.     kbAltX             = TKeyCode(kb_Alt + kb_Char + 120);
  324.     kbAltY             = TKeyCode(kb_Alt + kb_Char + 121);
  325.     kbAltZ             = TKeyCode(kb_Alt + kb_Char + 122);
  326.     kbAltF1            = TKeyCode(kb_Alt + kbF1);
  327.     kbAltF2            = TKeyCode(kb_Alt + kbF2);
  328.     kbAltF3            = TKeyCode(kb_Alt + kbF3);
  329.     kbAltF4            = TKeyCode(kb_Alt + kbF4);
  330.     kbAltF5            = TKeyCode(kb_Alt + kbF5);
  331.     kbAltF6            = TKeyCode(kb_Alt + kbF6);
  332.     kbAltF7            = TKeyCode(kb_Alt + kbF7);
  333.     kbAltF8            = TKeyCode(kb_Alt + kbF8);
  334.     kbAltF9            = TKeyCode(kb_Alt + kbF9);
  335.     kbAltF10           = TKeyCode(kb_Alt + kbF10);
  336.     kbAltF11           = TKeyCode(kb_Alt + kbF11);
  337.     kbAltF12           = TKeyCode(kb_Alt + kbF12);
  338.     kbAltCLeft         = TKeyCode(kb_Alt + kbCLeft);
  339.     kbAltCRight        = TKeyCode(kb_Alt + kbCRight);
  340.     kbAltCUp           = TKeyCode(kb_Alt + kbCUp);
  341.     kbAltCDown         = TKeyCode(kb_Alt + kbCDown);
  342.     kbAltDel           = TKeyCode(kb_Alt + kbDel);
  343.     kbAltIns           = TKeyCode(kb_Alt + kbIns);
  344.     kbAltEnd           = TKeyCode(kb_Alt + kbEnd);
  345.     kbAltHome          = TKeyCode(kb_Alt + kbHome);
  346.     kbAltPageDown      = TKeyCode(kb_Alt + kbPageDown);
  347.     kbAltPageUp        = TKeyCode(kb_Alt + kbPageUp);
  348.     kbAltBkSp          = TKeyCode(kb_Alt + kbBkSp);
  349.     kbAltCR            = TKeyCode(kb_Alt + kbCR);
  350.     kbAltSpace         = TKeyCode(kb_Alt + kbSpace);
  351.     kbAltTab           = TKeyCode(kb_Alt + kbTab);
  352.     kbAltEnter         = TKeyCode(kb_Alt + kbEnter);
  353.     kbAltPause         = TKeyCode(kb_Alt + kbPause);
  354.     kbAltBreak         = TKeyCode(kb_Alt + kbBreak);
  355. {$M-}
  356.  
  357.  
  358. TYPE
  359.     {General system type. System constants apply to SystemMetrics method}
  360. {$M+}
  361.     TSystemMetrics     = LONGINT;
  362.  
  363. CONST
  364.     {System Value Indices for TScreen.SystemMetrics()}
  365.     {$IFDEF OS2}
  366.     smCyTitlebar       = TSystemMetrics(SV_CYTITLEBAR);
  367.     smCyMenu           = TSystemMetrics(SV_CYMENU);
  368.     smCxMinMaxButton   = TSystemMetrics(SV_CXMINMAXBUTTON);
  369.     smCyMinMaxButton   = TSystemMetrics(SV_CYMINMAXBUTTON);
  370.     smCxSizeBorder     = TSystemMetrics(SV_CXSIZEBORDER);
  371.     smCySizeBorder     = TSystemMetrics(SV_CYSIZEBORDER);
  372.     smCxDlgBorder      = TSystemMetrics(SV_CXDLGFRAME);
  373.     smCyDlgBorder      = TSystemMetrics(SV_CYDLGFRAME);
  374.     smCxBorder         = TSystemMetrics(SV_CXBORDER);
  375.     smCyBorder         = TSystemMetrics(SV_CYBORDER);
  376.     smCxIcon           = TSystemMetrics(SV_CXICON);
  377.     smCyIcon           = TSystemMetrics(SV_CYICON);
  378.     smCxPointer        = TSystemMetrics(SV_CXPOINTER);
  379.     smCyPointer        = TSystemMetrics(SV_CYPOINTER);
  380.     smCxScreen         = TSystemMetrics(SV_CXSCREEN);
  381.     smCyScreen         = TSystemMetrics(SV_CYSCREEN);
  382.     smCxFullScreen     = TSystemMetrics(SV_CXFULLSCREEN);
  383.     smCyFullScreen     = TSystemMetrics(SV_CYFULLSCREEN);
  384.     smCxVScroll        = TSystemMetrics(SV_CXVSCROLL);
  385.     smCyHScroll        = TSystemMetrics(SV_CYHSCROLL);
  386.     smCxHScrollArrow   = TSystemMetrics(SV_CXHSCROLLARROW);
  387.     smCyHScrollArrow   = TSystemMetrics(SV_CYHSCROLL);
  388.     smCxVScrollArrow   = TSystemMetrics(SV_CXVSCROLL);
  389.     smCyVScrollArrow   = TSystemMetrics(SV_CYVSCROLLARROW);
  390.     smCxHSlider        = TSystemMetrics(SV_CXHSLIDER);
  391.     smCyVSlider        = TSystemMetrics(SV_CYVSLIDER);
  392.     smCMouseButtons    = TSystemMetrics(SV_CMOUSEBUTTONS);
  393.     smMousePresent     = TSystemMetrics(SV_MOUSEPRESENT);
  394.     smSwapButton       = TSystemMetrics(SV_SWAPBUTTON);
  395.     smCxDoubleClick    = TSystemMetrics(SV_CXDBLCLK);
  396.     smCyDoubleClick    = TSystemMetrics(SV_CYDBLCLK);
  397.     smDebug            = TSystemMetrics(SV_DEBUG);
  398.     {$ENDIF}
  399.     {$IFDEF Win32}
  400.     smCyTitlebar       = TSystemMetrics(SM_CYCAPTION);
  401.     smCyMenu           = TSystemMetrics(SM_CYMENU);
  402.     smCxMinMaxButton   = TSystemMetrics(SM_CXSIZE);
  403.     smCyMinMaxButton   = TSystemMetrics(SM_CYSIZE);
  404.     smCxSizeBorder     = TSystemMetrics(SM_CXFRAME);
  405.     smCySizeBorder     = TSystemMetrics(SM_CYFRAME);
  406.     smCxDlgBorder      = TSystemMetrics(SM_CXDLGFRAME);
  407.     smCyDlgBorder      = TSystemMetrics(SM_CYDLGFRAME);
  408.     smCxBorder         = TSystemMetrics(SM_CXBORDER);
  409.     smCyBorder         = TSystemMetrics(SM_CYBORDER);
  410.     smCxIcon           = TSystemMetrics(SM_CXICON);
  411.     smCyIcon           = TSystemMetrics(SM_CYICON);
  412.     smCxPointer        = TSystemMetrics(SM_CXCURSOR);
  413.     smCyPointer        = TSystemMetrics(SM_CYCURSOR);
  414.     smCxScreen         = TSystemMetrics(SM_CXSCREEN);
  415.     smCyScreen         = TSystemMetrics(SM_CYSCREEN);
  416.     smCxFullScreen     = TSystemMetrics(SM_CXFULLSCREEN);
  417.     smCyFullScreen     = TSystemMetrics(SM_CYFULLSCREEN);
  418.     smCxVScroll        = TSystemMetrics(SM_CXVSCROLL);
  419.     smCyHScroll        = TSystemMetrics(SM_CYHSCROLL);
  420.     smCxHScrollArrow   = TSystemMetrics(SM_CXHSCROLL);
  421.     smCyHScrollArrow   = TSystemMetrics(SM_CYHSCROLL);
  422.     smCxVScrollArrow   = TSystemMetrics(SM_CXVSCROLL);
  423.     smCyVScrollArrow   = TSystemMetrics(SM_CYVSCROLL);
  424.     smCxHSlider        = TSystemMetrics(SM_CXHTHUMB);
  425.     smCyVSlider        = TSystemMetrics(SM_CYVTHUMB);
  426.     smCMouseButtons    = TSystemMetrics(SM_CMOUSEBUTTONS);
  427.     smMousePresent     = TSystemMetrics(SM_MOUSEPRESENT);
  428.     smSwapButton       = TSystemMetrics(SM_SWAPBUTTON);
  429.     smCxDoubleClick    = TSystemMetrics(SM_CXDOUBLECLK);
  430.     smCyDoubleClick    = TSystemMetrics(SM_CYDOUBLECLK);
  431.     smDebug            = TSystemMetrics(SM_DEBUG);
  432.     {$ENDIF}
  433. {$M-}
  434.  
  435.  
  436. CONST
  437.     {Standard Clipboard formats for use within the SetData Method in
  438.      TClipBoard}
  439.     {$IFDEF OS2}
  440.     cfText             = CF_TEXT;
  441.     cfBitmap           = CF_BITMAP;
  442.     cfMetaFile         = CF_METAFILE;
  443.     cfPalette          = CF_PALETTE;
  444.     cfDspText          = CF_DSPTEXT;
  445.     cfDspBitmap        = CF_DSPBITMAP;
  446.     cfDspMetaFile      = CF_DSPMETAFILE;
  447.     {$ENDIF}
  448.     {$IFDEF Win32}
  449.     cfText             = CF_TEXT;
  450.     cfBitmap           = CF_BITMAP;
  451.     cfMetaFile         = CF_METAFILEPICT;
  452.     cfPalette          = CF_PALETTE;
  453.     cfDspText          = CF_DSPTEXT;
  454.     cfDspBitmap        = CF_DSPBITMAP;
  455.     cfDspMetaFile      = CF_DSPMETAFILEPICT;
  456.     {$ENDIF}
  457.  
  458. TYPE
  459.     TClipboard=CLASS(TComponent)
  460.       PRIVATE
  461.          FOpenWin: HWindow;
  462.          FUNCTION GetOwner:HWindow;
  463.          FUNCTION GetViewer:HWindow;
  464.          PROCEDURE SetViewer(viewer:HWindow);
  465.       PUBLIC
  466.          FUNCTION Open(ahwnd:HWindow):BOOLEAN;
  467.          FUNCTION Close:BOOLEAN;
  468.          FUNCTION Empty:BOOLEAN;
  469.          FUNCTION SetData(data,format:LONGWORD):BOOLEAN;
  470.          FUNCTION GetData(format:LONGWORD):LONGWORD;
  471.          FUNCTION CountFormats:LONGINT;
  472.          FUNCTION EnumFormats(FormatIndex:LONGWORD):LONGWORD;
  473.          FUNCTION IsFormatAvailable(format:LONGWORD):BOOLEAN;
  474.          FUNCTION RegisterFormat(CONST s:STRING):LONGWORD;
  475.          FUNCTION GetFormatName(format:LONGWORD):STRING;
  476.          PROPERTY Parent:HWindow read GetOwner;
  477.          PROPERTY Viewer:HWindow read GetViewer write SetViewer;
  478.     END;
  479.  
  480.  
  481. TYPE
  482.     {predefined mouse cursor constants}
  483. {$M+}
  484.     TCursor       = LONGINT;
  485.  
  486. CONST
  487.     crDefault     = TCursor(0);
  488.     crNone        = TCursor(-1);
  489.     crArrow       = TCursor(-2);
  490.     crCross       = TCursor(-3);
  491.     crIBeam       = TCursor(-4);
  492.     crSize        = TCursor(-5);
  493.     crSizeNESW    = TCursor(-6);
  494.     crSizeNS      = TCursor(-7);
  495.     crSizeNWSE    = TCursor(-8);
  496.     crSizeWE      = TCursor(-9);
  497.     crUpArrow     = TCursor(-10);
  498.     crHourGlass   = TCursor(-11);
  499.     crDrag        = TCursor(-12);
  500.     crNoDrop      = TCursor(-13);
  501.     crHSplit      = TCursor(-14);
  502.     crVSplit      = TCursor(-15);
  503.     crMultiDrag   = TCursor(-16);
  504.     crSQLWait     = TCursor(-17);
  505.     crNo          = TCursor(-18);
  506.     crAppStart    = TCursor(-19);
  507.     crHelp        = TCursor(-20);
  508.  
  509.  
  510. TYPE
  511.     {standard font types}
  512.     TFontType=(ftBitmap,ftOutline);
  513.  
  514.     {standard font attributes}
  515.     TFontAttributes=SET OF(faItalic,faUnderscore,faOutline,faStrikeOut,faBold);
  516.  
  517.     {standard font pitches}
  518.     TFontPitch=(fpFixed,fpProportional);
  519.  
  520.     {standard font character set}
  521.     TFontCharSet=(fcsSBCS,fcsDBCS,fcsMBCS);  {single,double,mixed Byte}
  522. {$M-}
  523.  
  524.  
  525. ////////////////////////////////////////////////////////////////////////////
  526. //  Change Font attributes only if you have created a font copy using
  527. //  CreateCompatibleFont or created a new font using GetFontFromPointSize
  528. //  Changing predefined Fonts as returned from GetSystemSmallFont or
  529. //  GetSystemFixedFont will have global effects !
  530. ////////////////////////////////////////////////////////////////////////////
  531.  
  532.     TFont=CLASS(TComponent)
  533.       PRIVATE
  534.          FInternalPointSize:LONGWORD;   {Internal Point.Name value or NIL}
  535.          {$IFDEF OS2}
  536.          FFontInfo:FONTMETRICS;
  537.          {$ENDIF}
  538.          {$IFDEF Win32}
  539.          FFontInfo:LOGFONT;
  540.          FHandle:HWindow;
  541.          FRefCount:LONGWORD;
  542.          {$ENDIF}
  543.          FUseCount:LONGWORD;
  544.          FCustom:BOOLEAN;
  545.          FDefault:BOOLEAN;
  546.          FAutoDestroy:BOOLEAN;
  547.          FFontType:TFontType;
  548.          FUNCTION GetName:STRING;
  549.          FUNCTION GetFamily:STRING;
  550.          FUNCTION GetPitch:TFontPitch;
  551.          FUNCTION GetHeight:LONGINT;
  552.          FUNCTION GetWidth:LONGINT;
  553.          FUNCTION GetAttributes:TFontAttributes;
  554.          PROCEDURE SetHeight(NewHeight:LONGINT);
  555.          PROCEDURE SetWidth(NewWidth:LONGINT);
  556.          PROCEDURE SetAttributes(NewAttr:TFontAttributes);
  557.          FUNCTION GetInternalLeading:LONGINT;
  558.          FUNCTION GetNominalPointSize:LONGINT;
  559.          FUNCTION GetMinimumPointSize:LONGINT;
  560.          FUNCTION GetMaximumPointSize:LONGINT;
  561.          FUNCTION GetCharSet:TFontCharSet;
  562.       PROTECTED
  563.          PROCEDURE SetupComponent;OVERRIDE;
  564.       PUBLIC
  565.          CONSTRUCTOR Create(AOwner:TComponent);OVERRIDE;
  566.          FUNCTION WriteSCUResourceName(Stream:TResourceStream;ResName:TResourceName):BOOLEAN;
  567.          //if this is set to TRUE, the font is automatically freed when the control that owns
  568.          //the font is destroyed and no other control owns the font
  569.          //this option is only valid for fonts created with "CreateCompatibleFont"
  570.          PROPERTY IsDefault:BOOLEAN read FDefault; //undocumented !
  571.          PROPERTY AutoDestroy:BOOLEAN read FAutoDestroy write FAutoDestroy;
  572.          PROPERTY FaceName:STRING read GetName;
  573.          PROPERTY Family:STRING read GetFamily;
  574.          PROPERTY Height:LONGINT read GetHeight write SetHeight;
  575.          PROPERTY Width:LONGINT read GetWidth write SetWidth;
  576.          PROPERTY InternalLeading:LONGINT read GetInternalLeading;
  577.          PROPERTY NominalPointSize:LONGINT read GetNominalPointSize;
  578.          PROPERTY MinimumPointSize:LONGINT read GetMinimumPointSize;
  579.          PROPERTY MaximumPointSize:LONGINT read GetMaximumPointSize;
  580.          PROPERTY Attributes:TFontAttributes read GetAttributes write SetAttributes;
  581.          PROPERTY Pitch:TFontPitch read GetPitch;
  582.          PROPERTY CharSet:TFontCharSet read GetCharSet;
  583.          PROPERTY FontType:TFontType read FFontType;
  584.          PROPERTY PointSize:LONGWORD read FInternalPointSize write FInternalPointSize;
  585.     END;
  586.  
  587.     {Canvas forward}
  588.     TCanvas=CLASS;
  589.  
  590.     {standard class styles}
  591.     TClassStyles=SET OF (wcsSizeRedraw,wcsHitTest,
  592.                          wcsFrame,wcsClipChildren,wcsClipSiblings,
  593.                          wcsParentClip,wcsSaveBits,wcsSyncPaint,wcsOwnDC);
  594.  
  595.     {Window class record}
  596.     TClassData=RECORD
  597.          StandardClass:BOOLEAN;
  598.          ClassName:CSTRING;
  599.          WindowProc:POINTER;
  600.          ClassStyle:TClassStyles;
  601.          DataCount:LONGWORD;
  602.          ClassULong:LONGWORD; {Only used for OS/2}
  603.     END;
  604.  
  605.  
  606.     {internal window procedure format}
  607.     {$IFDEF OS2}
  608.     TWndProc=FUNCTION(Win,msg,para1,para2:LONGWORD):LONGWORD;CDECL;
  609.     {$ENDIF}
  610.     {$IFDEF Win32}
  611.     TWndProc=FUNCTION(Win,msg,para1,para2:LONGWORD):LONGWORD;APIENTRY;
  612.     {$ENDIF}
  613.  
  614. {$M+}
  615.     {toolbar alignments}
  616.     TToolBarAlign=(tbLeft,tbRight,tbTop,tbBottom);
  617.  
  618.     TToolBarAlignments=SET OF TToolBarAlign;
  619.  
  620.     TToolBarBevel=(tbRaised,tbLowered,tbNone);
  621. {$M-}
  622.  
  623.     {Toolbar forward}
  624.     TToolBar=CLASS;
  625.     TToolBarClass=CLASS OF TToolBar;
  626.  
  627.     {Control forward}
  628.     TControl=CLASS;
  629.     TControlClass=CLASS OF TControl;
  630.  
  631.     {Form forward}
  632.     TForm=CLASS;
  633.     TFormClass=CLASS OF TForm;
  634.  
  635.     {Timer forward}
  636.     TTimer=CLASS;
  637.     TTimerClass=CLASS OF TTimer;
  638.  
  639.     {Graphic forward}
  640.     TGraphic=CLASS;
  641.  
  642.     {standard help context type}
  643.     THelpContext=LONGWORD;
  644.  
  645.  
  646.     TTimer=CLASS(TComponent)
  647.       PRIVATE
  648.          FControl:TControl;
  649.          FId:LONGINT;
  650.          FRunning:BOOLEAN;
  651.          FTime:LONGINT;
  652.          FInterval:LONGINT;
  653.          FOnTimer:TNotifyEvent;
  654.          PROCEDURE Increment;
  655.       PROTECTED
  656.          PROCEDURE SetupComponent;OVERRIDE;
  657.          PROCEDURE Timer;VIRTUAL;
  658.       PUBLIC
  659.          DESTRUCTOR Destroy;OVERRIDE;
  660.          PROCEDURE Start;
  661.          PROCEDURE Stop;
  662.          PROPERTY Id:LONGINT read FId;
  663.          PROPERTY Running:BOOLEAN read FRunning;
  664.          PROPERTY Time:LONGINT read FTime write FTime;
  665.       PUBLISHED
  666.          PROPERTY Interval:LONGINT read FInterval write FInterval;
  667.          PROPERTY OnTimer:TNotifyEvent read FOnTimer write FOnTimer;
  668.     END;
  669.  
  670.  
  671.     {standard menu entry styles}
  672.     TMenuItemStyles=SET OF (misText,misBitmap,misOwnerDraw,
  673.          misSubmenu,misMultMenu,misSysCommand,misHelp,misStatic,
  674.          misButtonSeparator,misBreak,misBreakSeparator,misGroup,misSingle);
  675.  
  676.     {standard menu entry flags}
  677.     TMenuItemFlags=SET OF (mifNoDismiss,mifFramed,mifChecked,mifDisabled,
  678.          mifHilited);
  679.  
  680. {$M+}
  681.     TMenuBreak=(mbNone,mbBreak,mbBarBreak,mbSeparator);
  682. {$M-}
  683.  
  684.     {Menu forward}
  685.     TMenu=CLASS;
  686.  
  687.     TMenuItem=CLASS(TComponent)
  688.       PRIVATE
  689.          FParent:TMenuItem;
  690.          FMenu:TMenu;
  691.          FMenuOwner:TControl; {Form}
  692.          FHandle:HWindow;
  693.          FItems:TList;
  694.          FInitItems:TList;   {FItems or nil}
  695.          FCaption:PSTRING;
  696.          FStyles:TMenuItemStyles;
  697.          FFlags:TMenuItemFlags;
  698.          FGlyph:TGraphic;
  699.          FCommand:TCommand;
  700.          FInternalCommand:TCommand;
  701.          FCreated:BOOLEAN;
  702.          FDefWndProc:TWndProc;
  703.          FHelpContext:THelpContext;
  704.          FShortCut:TKeyCode;
  705.          FHint:PSTRING;
  706.          FOnClick:TNotifyEvent;
  707.          {$IFDEF OS2}
  708.          PROCEDURE WMChar(VAR Msg:TWMChar); message WM_CHAR;
  709.          PROCEDURE WMHelp(VAR Msg:TMessage); message WM_HELP;
  710.          {$ENDIF}
  711.          PROCEDURE SetShortCut(NewAccel:TKeyCode);
  712.          FUNCTION GetCaption:STRING;
  713.          PROCEDURE SetCaption(NewCaption:STRING);
  714.          PROCEDURE SetStyles(NewStyles:TMenuItemStyles);
  715.          PROCEDURE SetFlags(NewFlags:TMenuItemFlags);
  716.          FUNCTION GetULongFromStyle:LONGWORD;
  717.          FUNCTION GetULongFromFlags:LONGWORD;
  718.          PROCEDURE SetGlyph(NewGlyph:TGraphic);
  719.          PROCEDURE SetCommand(NewCommand:TCommand);
  720.          PROCEDURE SetHint(CONST NewText:STRING);
  721.          FUNCTION GetHint:STRING;
  722.          FUNCTION GetChecked:BOOLEAN;
  723.          PROCEDURE SetChecked(Value:BOOLEAN);
  724.          FUNCTION GetEnabled:BOOLEAN;
  725.          PROCEDURE SetEnabled(Value:BOOLEAN);
  726.          FUNCTION GetBreak:TMenuBreak;
  727.          PROCEDURE SetBreak(Value:TMenuBreak);
  728.          FUNCTION GetSubMenu:BOOLEAN;
  729.          PROCEDURE SetSubMenu(Value:BOOLEAN);
  730.          FUNCTION GetCount:LONGINT;
  731.          FUNCTION GetItem(Index:LONGINT):TMenuItem;
  732.          FUNCTION GetMenuIndex:LONGINT;
  733.          FUNCTION GetIsEditMenuItem:BOOLEAN;
  734.          {$IFDEF Win32}
  735.          PROCEDURE RedrawMenuBar;
  736.          {$ENDIF}
  737.       PROTECTED
  738.          PROCEDURE SetupComponent;OVERRIDE;
  739.          PROCEDURE GetChildren(Proc:TGetChildProc);OVERRIDE;
  740.          PROCEDURE LoadedFromSCU(SCUParent:TComponent);OVERRIDE;
  741.          PROCEDURE CreateWnd;VIRTUAL;
  742.          PROPERTY Flags:TMenuItemFlags read FFlags write SetFlags;
  743.          PROPERTY Styles:TMenuItemStyles read FStyles write SetStyles;
  744.       PUBLIC
  745.          DESTRUCTOR Destroy;OVERRIDE;
  746.          PROCEDURE Add(Item:TMenuItem);
  747.          PROCEDURE Insert(Index:LONGINT;Item:TMenuItem);
  748.          FUNCTION IndexOf(Item:TMenuItem):LONGINT;
  749.          PROCEDURE Click;VIRTUAL;
  750.          PROPERTY IsEditMenuItem:BOOLEAN read GetIsEditMenuItem; {raus}
  751.          PROPERTY Handle:HWindow read FHandle;
  752.          PROPERTY Count:LONGINT read GetCount;
  753.          PROPERTY Items[Index:LONGINT]:TMenuItem read GetItem; Default;
  754.          PROPERTY MenuIndex:LONGINT read GetMenuIndex; {write SetMenuIndex;}
  755.          PROPERTY Parent:TMenuItem read FParent;
  756.          PROPERTY Glyph:TGraphic read FGlyph write SetGlyph;
  757.       PUBLISHED
  758.          PROPERTY Caption:STRING read GetCaption write SetCaption;
  759.          PROPERTY Command:TCommand read FCommand write SetCommand;
  760.          PROPERTY HelpContext:THelpContext read FHelpContext write FHelpContext;
  761.          PROPERTY ShortCut:TKeyCode read FShortCut write SetShortCut;
  762.          PROPERTY Hint:STRING read GetHint write SetHint;
  763.          PROPERTY Checked:BOOLEAN read GetChecked write SetChecked;
  764.          PROPERTY Enabled:BOOLEAN read GetEnabled write SetEnabled;
  765.          PROPERTY Break:TMenuBreak read GetBreak write SetBreak;
  766.          PROPERTY Submenu:BOOLEAN read GetSubmenu write SetSubMenu;
  767.          PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
  768.     END;
  769.     TMenuItemClass=CLASS OF TMenuItem;
  770.  
  771.  
  772.     TMenu=CLASS(TComponent)
  773.       PRIVATE
  774.          FParent:TControl;      {Frame}
  775.          FItems:TMenuItem;
  776.          FInitItems:TMenuItem;  {FItems or nil}
  777.          FHandle:HWindow;
  778.          FResourceId:LONGWORD;
  779.          {$IFDEF OS2}
  780.          FDefWndProc:TWndProc;
  781.          {$ENDIF}
  782.          FFont:TFont;
  783.          {$IFDEF OS2}
  784.          PROCEDURE WMChar(VAR Msg:TWMChar); message WM_CHAR;
  785.          {$ENDIF}
  786.          FUNCTION ItemFromCommand(Command:TCommand):TMenuItem;
  787.          FUNCTION ItemFromInternalCommand(Command:TCommand):TMenuItem;
  788.          FUNCTION GetSelectedMenuItem:TMenuItem;
  789.          FUNCTION GetWidth:LONGINT;
  790.          FUNCTION GetHeight:LONGINT;
  791.          PROCEDURE SetFont(NewFont:TFont);
  792.       PROTECTED
  793.          PROCEDURE SetupComponent;OVERRIDE;
  794.          PROCEDURE GetChildren(Proc:TGetChildProc);OVERRIDE;
  795.          PROCEDURE LoadedFromSCU(SCUParent:TComponent);OVERRIDE;
  796.          PROCEDURE LoadResource;
  797.          PROCEDURE CharEvent(Entry:TMenuItem;VAR Key:CHAR;rep:BYTE);VIRTUAL;
  798.          PROCEDURE ScanEvent(Entry:TMenuItem;VAR KeyCode:TKeyCode;rep:BYTE);VIRTUAL;
  799.          PROCEDURE CreateMenu;VIRTUAL;
  800.          PROCEDURE Show;VIRTUAL;
  801.          PROPERTY Width:LONGINT read GetWidth;
  802.          PROPERTY Height:LONGINT read GetHeight;
  803.       PUBLIC
  804.          DESTRUCTOR Destroy;OVERRIDE;
  805.          PROCEDURE DisableCommands(Cmds:ARRAY OF TCommand);
  806.          PROCEDURE EnableCommands(Cmds:ARRAY OF TCommand);
  807.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  808.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  809.          PROPERTY Handle:HWindow read FHandle;
  810.          PROPERTY Items:TMenuItem read FItems;
  811.          PROPERTY MenuItems[Command:TCommand]:TMenuItem read ItemFromCommand;
  812.       PUBLISHED
  813.          PROPERTY ResourceId:LONGWORD read FResourceId write FResourceId;
  814.          PROPERTY Font:TFont read FFont write SetFont;
  815.     END;
  816.     TMenuClass=CLASS OF TMenu;
  817.  
  818.  
  819.     {MainMenu class}
  820.     TMainMenu=CLASS(TMenu)
  821.       PROTECTED
  822.          PROCEDURE SetupComponent;OVERRIDE;
  823.          PROCEDURE Show;OVERRIDE;
  824.       PUBLIC
  825.          PROPERTY Height;
  826.     END;
  827.     TMainMenuClass=CLASS OF TMainMenu;
  828.  
  829.  
  830.     {$M+}
  831.     TPopupAlignment=(paLeft,paCenter,paRight);
  832.     {$M-}
  833.  
  834.     {PopupMenu class}
  835.     TPopupMenu=CLASS(TMenu)
  836.       PRIVATE
  837.          FAutoPopup:BOOLEAN;
  838.          FPopupComponent:TComponent;
  839.          FAlignment:TPopupAlignment;
  840.          FOnPopup:TNotifyEvent;
  841.          PROCEDURE SetPopupComponent(NewComponent:TComponent);
  842.       PROTECTED
  843.          PROCEDURE SetupComponent;OVERRIDE;
  844.          PROCEDURE CreateMenu;OVERRIDE;
  845.       PUBLIC
  846.          PROCEDURE Popup(X,Y:LONGINT);VIRTUAL;
  847.          PROPERTY Width;
  848.          PROPERTY Height;
  849.          PROPERTY PopupComponent:TComponent read FPopupComponent write SetPopupComponent;
  850.       PUBLISHED
  851.          PROPERTY AutoPopup:BOOLEAN read FAutoPopup write FAutoPopup;
  852.          PROPERTY Alignment:TPopupAlignment read FAlignment write FAlignment;
  853.          PROPERTY OnPopup:TNotifyEvent read FOnPopup write FOnPopup;
  854.     END;
  855.     TPopupMenuClass=CLASS OF TPopupMenu;
  856.  
  857.  
  858.     TCaret=CLASS
  859.       PRIVATE
  860.          FLeft,FBottom,FWidth,FHeight:LONGINT;
  861.          FCreated:BOOLEAN;
  862.          FBlinkTime:LONGINT;
  863.          FOldBlinkTime:LONGINT;
  864.          FControl:TControl;
  865.          PROCEDURE SetBlinkTime(ms:LONGINT);
  866.       PUBLIC
  867.          CONSTRUCTOR Create(Owner:TControl);VIRTUAL;
  868.          PROCEDURE SetPos(Left,Bottom:LONGINT);
  869.          PROCEDURE SetSize(Width,Height:LONGINT);
  870.          PROCEDURE Show;
  871.          PROCEDURE Hide;
  872.          PROCEDURE Remove;
  873.          PROPERTY Left:LONGINT read FLeft write FLeft;
  874.          PROPERTY Bottom:LONGINT read FBottom write FBottom;
  875.          PROPERTY Width:LONGINT read FWidth write FWidth;
  876.          PROPERTY Height:LONGINT read FHeight write FHeight;
  877.          PROPERTY Created:BOOLEAN read FCreated write FCreated;
  878.          PROPERTY BlinkTime:LONGINT read FBlinkTime write SetBlinkTime;
  879.     END;
  880.  
  881.  
  882. {$M+}
  883.     TScrollCode=(scLineUp,scLineDown,scPageUp,scPageDown,
  884.                  scColumnLeft,scColumnRight,scPageLeft,scPageRight,
  885.                  scHorzTrack,scVertTrack,scHorzPosition,scVertPosition,
  886.                  scHorzEndScroll,scVertEndScroll);
  887.  
  888.     TDragMode=(dmManual,dmAutomatic);
  889.     TDragState=(dsDragEnter,dsDragMove,dsDragLeave);
  890.  
  891.     TDragDropSourceType=(drtSibyl,drtSibylObject,drtText,drtBinData,drtString);
  892.     TDragDropRenderType=(drmSibyl,drmSibylObject,drmPrint,drmFile,drmString);
  893.     TDragDropOperation=(doDefault,doCopy,doMove,doLink,doUnknown);
  894.     TDragDropSupportedOps=SET OF(doCopyable,doMoveable,doLinkable);
  895.  
  896.     PDragDropData=^TDragDropData;
  897.     {$M+}
  898.     TDragDropData=RECORD
  899.     {$M-}
  900.          SourceWindow:HWindow;
  901.          SourceType:TDragDropSourceType;
  902.          RenderType:TDragDropRenderType;
  903.          SourceString:String;
  904.          RenderString:String;
  905.          ContainerName:STRING;
  906.          SourceFileName:STRING;
  907.          TargetFileName:STRING;
  908.          SupportedOps:TDragDropSupportedOps;
  909.          DragOperation:TDragDropOperation;
  910.          ItemId:LONGWORD;
  911.     END;
  912.  
  913.     TExternalDragDropObject=CLASS(TComponent)
  914.       PRIVATE
  915.          FDragDropData:TDragDropData;
  916.       PUBLIC
  917.          PROPERTY SourceWindow:HWindow read FDragDropData.SourceWindow;
  918.          PROPERTY SourceType:TDragDropSourceType read FDragDropData.SourceType;
  919.          PROPERTY RenderType:TDragDropRenderType read FDragDropData.RenderType;
  920.          PROPERTY SourceString:String read FDragDropData.SourceString;
  921.          PROPERTY RenderString:String read FDragDropData.RenderString;
  922.          PROPERTY ContainerName:STRING read FDragDropData.ContainerName;
  923.          PROPERTY SourceFileName:STRING read FDragDropData.SourceFileName;
  924.          PROPERTY TargetFileName:STRING read FDragDropData.TargetFileName;
  925.          PROPERTY SupportedOps:TDragDropSupportedOps read FDragDropData.SupportedOps;
  926.          PROPERTY DragOperation:TDragDropOperation read FDragDropData.DragOperation;
  927.          PROPERTY ItemId:LONGWORD read FDragDropData.ItemId;
  928.     END;
  929. {$M-}
  930.  
  931.     {ScrollbarControl forward}
  932.     TScrollBar=CLASS;
  933.     TScrollBarClass=CLASS OF TScrollBar;
  934.  
  935. {$M+}
  936.     {standard mouse button states}
  937.     TMouseButton=(mbRight,mbLeft,mbMiddle);
  938.  
  939.     TShiftState=SET OF (ssShift,ssAlt,ssCtrl,ssRight,ssLeft,ssMiddle,ssDouble);
  940.  
  941.  
  942.     {TControl event types}
  943.     TCommandEvent=PROCEDURE(Sender:TObject;VAR Command:TCommand) OF OBJECT;
  944.     TKeyPressEvent=PROCEDURE(Sender:TObject;VAR Key:CHAR) OF OBJECT;
  945.     TScanEvent=PROCEDURE(Sender:TObject;VAR KeyCode:TKeyCode) OF OBJECT;
  946.     TMouseEvent=PROCEDURE(Sender:TObject;Button:TMouseButton;
  947.          Shift:TShiftState;X,Y:LONGINT) OF OBJECT;
  948.     TMouseMoveEvent=PROCEDURE(Sender:TObject;Shift:TShiftState;
  949.          X,Y:LONGINT) OF OBJECT;
  950.     TPaintEvent=PROCEDURE(Sender:TObject;CONST rec:TRect) OF OBJECT;
  951.  
  952.     TCanDragEvent=PROCEDURE(Sender:TObject;X,Y:LONGINT;VAR Accept:BOOLEAN) OF OBJECT;
  953.     TStartDragEvent=PROCEDURE(Sender:TObject;VAR DragData:TDragDropData) OF OBJECT;
  954.     TEndDragEvent=PROCEDURE(Sender:TObject;Target:TObject;X,Y:LONGINT) OF OBJECT;
  955.     TDragOverEvent=PROCEDURE(Sender:TObject;Source:TObject;X,Y:LONGINT;
  956.          State:TDragState;VAR Accept:BOOLEAN) OF OBJECT;
  957.     TDragDropEvent=PROCEDURE(Sender:TObject;Source:TObject;X,Y:LONGINT) OF OBJECT;
  958.  
  959.     TMenuEvent=PROCEDURE(Sender:TObject;AMenu:TMenu;Entry:TMenuItem) OF OBJECT;
  960.  
  961.  
  962.     TScrollStyle=(ssNone,ssHorizontal,ssVertical,ssBoth);
  963.  
  964.     {Text Alignment constants}
  965.     TAlignment=(taLeftJustify,taRightJustify,taCenter);
  966.  
  967.     {Alignment constants}
  968.     TAlign=(alNone,alTop,alBottom,alLeft,alRight,alClient,alFrame,alScale,
  969.          alCenter,alCenterX,alCenterY,
  970.          alFixedLeftTop,alFixedLeftBottom,alFixedRightTop,alFixedRightBottom);
  971.  
  972.     {X Alignment constants}
  973.     TXAlign=(xaNone,xaParent,xaLeft,xaRight,xaCenter);
  974.  
  975.     {Y alignment constants}
  976.     TYAlign=(yaNone,yaParent,yaBottom,yaTop,yaCenter);
  977.  
  978.     {X stretching constants}
  979.     TXStretch=(xsNone,xsParent,xsFrame,xsScale,xsFixed);
  980.  
  981.     {Y stretching constants}
  982.     TYStretch=(ysNone,ysParent,ysFrame,ysScale,ysFixed);
  983.  
  984.     TZOrder=(zoNone,zoBottom,zoTop);
  985. {$M-}
  986.  
  987.     TMouseParam=RECORD
  988.          pt:TPoint;
  989.          Button:TMouseButton;
  990.          ShiftState:TShiftState;
  991.     END;
  992.  
  993.     TKeyParam=RECORD
  994.          KeyCode:TKeyCode;
  995.          RepeatCount:BYTE;
  996.     END;
  997.  
  998.     TDesignerNotifyCode=(dncMouseDown,dncMouseUp,dncMouseClick,
  999.                          dncMouseDblClk,dncMouseMove,dncChar,dncScan,
  1000.                          dncPaint,dncSCUModified,dncNewMenuItem);
  1001.  
  1002.     TDesignerNotifyStruct=RECORD
  1003.          Sender:TComponent;
  1004.          Code:TDesignerNotifyCode;
  1005.          Return:LONGINT;
  1006.          CASE TDesignerNotifyCode OF
  1007.              dncMouseDown,
  1008.              dncMouseUp,
  1009.              dncMouseClick,
  1010.              dncMouseDblClk,
  1011.              dncMouseMove:        (mouseparam:TMouseParam);
  1012.              dncChar,dncScan:     (keyparam:TKeyParam);
  1013.              dncPaint:            (rec:TRect);
  1014.     END;
  1015.  
  1016.  
  1017.     TCreateParams=RECORD
  1018.          Style:LONGINT;
  1019.          ExStyle:LONGINT;
  1020.          FrameStyle:LONGINT;
  1021.     END;
  1022.  
  1023.  
  1024.     PScaleInfo=^TScaleInfo;
  1025.     TScaleInfo=RECORD
  1026.          Left,Right,Bottom,Top:EXTENDED;
  1027.     END;
  1028.  
  1029.     PFrameInfo=^TFrameInfo;
  1030.     TFrameInfo=RECORD
  1031.          Left,Right,Bottom,Top:LONGINT;
  1032.     END;
  1033.  
  1034.  
  1035.     TLastMsg=CLASS
  1036.       PRIVATE
  1037.          FControl:TControl;
  1038.          FUNCTION GetHandled:LONGBOOL;
  1039.          PROCEDURE SetHandled(Value:LONGBOOL);
  1040.          FUNCTION GetResult:LONGWORD;
  1041.          PROCEDURE SetResult(Value:LONGWORD);
  1042.       PUBLIC
  1043.          PROCEDURE CallDefaultHandler;
  1044.          PROPERTY Handled:LONGBOOL read GetHandled write SetHandled;
  1045.          PROPERTY Result:LONGWORD read GetResult write SetResult;
  1046.     END;
  1047.  
  1048.  
  1049.     TControl=CLASS(TComponent)
  1050.       PRIVATE
  1051.          FParent:TControl;
  1052.          FControls:TList;
  1053.          FWindowId:LONGWORD;
  1054.          FDefWndProc:TWndProc;
  1055.          FCursor:TCursor;
  1056.          FHandle:HWindow;
  1057.          FCanvas:TCanvas;
  1058.          FInitCanvas:BOOLEAN;
  1059.          FCaption:PSTRING;
  1060.          FFrame:TControl;
  1061.          FLeft,FBottom,FWidth,FHeight:LONGINT;
  1062.          FXAlign:TXAlign;
  1063.          FYAlign:TYAlign;
  1064.          FXStretch:TXStretch;
  1065.          FYStretch:TYStretch;
  1066.          FZOrder:TZOrder;
  1067.          FPenColor:TColor;
  1068.          FColor:TColor;
  1069.          FHasFocus:BOOLEAN;
  1070.          FIsToolBar:BOOLEAN;
  1071.          {$IFDEF Win32}
  1072.          FClickTime:LONGINT;
  1073.          FLastLButtonDownTime:LONGINT;
  1074.          FLastRButtonDownTime:LONGINT;
  1075.          FDefFontHandle:LONGWORD;
  1076.          FCtlBrush:LONGWORD;
  1077.          {$ENDIF}
  1078.          FFont:TFont;
  1079.          FEnabled:BOOLEAN;
  1080.          FVisible:BOOLEAN;
  1081.          FCursorTabStop:BOOLEAN;
  1082.          FTabStop:BOOLEAN;
  1083.          FTabOrder:LONGINT;
  1084.          FTabList:TList;
  1085.          FForm:TForm;
  1086.          FHint:PSTRING;
  1087.          FShowHint:BOOLEAN;
  1088.          FParentShowHint:BOOLEAN;
  1089.          FParentFont:BOOLEAN;
  1090.          FParentPenColor:BOOLEAN;
  1091.          FParentColor:BOOLEAN;
  1092.          FUpdateEnabled:BOOLEAN;
  1093.          FOldEnabledState:BOOLEAN;
  1094.          FHelpContext:THelpContext;
  1095.          FAutoScale:PScaleInfo;
  1096.          FAutoFrame:PFrameInfo;
  1097.          FLastDeadKey:WORD;
  1098.          FInitControls:BOOLEAN;
  1099.          FFirstShow:BOOLEAN;
  1100.          FOwnerDraw:BOOLEAN;
  1101.          FHandlesDesignMouse:BOOLEAN;
  1102.          FHandlesDesignKey:BOOLEAN;
  1103.          FCommand:TCommand;
  1104.          FModalParent:TControl;
  1105.          FUpdatingPP:BOOLEAN;
  1106.          FDragMode:TDragMode;
  1107.          FDragState:TDragState;
  1108.          FDragControl:TControl;
  1109.          FDragging:BOOLEAN;
  1110.          FDragCursor:TCursor;
  1111.          FLastDragOperation:TDragDropOperation;
  1112.          {$IFDEF OS2}
  1113.          FDragInfo:PDRAGINFO;
  1114.          FDragCanvas:TCanvas;
  1115.          {$ENDIF}
  1116.          FMouseCapture:BOOLEAN;
  1117.          FLastMsg:TLastMsg;
  1118.          FLastMsgAdr:PMessage;
  1119.          IsFontChangeEnabled:BOOLEAN;
  1120.          IsStandardControl:BOOLEAN;
  1121.          IsEditControl:BOOLEAN;
  1122.          FPopupMenu:TPopupMenu;
  1123.          FOnEnter:TNotifyEvent;
  1124.          FOnExit:TNotifyEvent;
  1125.          FOnKeyPress:TKeyPressEvent;
  1126.          FOnScan:TScanEvent;
  1127.          FOnMouseDown:TMouseEvent;
  1128.          FOnMouseMove:TMouseMoveEvent;
  1129.          FOnMouseUp:TMouseEvent;
  1130.          FOnMouseClick:TMouseEvent;
  1131.          FOnMouseDblClick:TMouseEvent;
  1132.          FOnResize:TNotifyEvent;
  1133.          FOnMove:TNotifyEvent;
  1134.          FOnPaint:TPaintEvent;
  1135.          FOnCommand:TCommandEvent;
  1136.          FOnSetupShow:TNotifyEvent;
  1137.          FOnShow:TNotifyEvent;
  1138.          FOnHide:TNotifyEvent;
  1139.          FOnCanDrag:TCanDragEvent;
  1140.          FOnStartDrag:TStartDragEvent;
  1141.          FOnEndDrag:TEndDragEvent;
  1142.          FOnDragOver:TDragOverEvent;
  1143.          FOnDragDrop:TDragDropEvent;
  1144.          FOnFontChange:TNotifyEvent;
  1145.          FOnDblClick:TNotifyEvent;
  1146.       PRIVATE
  1147.          {$IFDEF OS2}
  1148.          PROCEDURE WMBeginDrag(VAR Msg:TMessage); message WM_BEGINDRAG;
  1149.          PROCEDURE WMEndDrag(VAR Msg:TMessage); message WM_ENDDRAG;
  1150.          PROCEDURE DMDragOver(VAR Msg:TMessage); message DM_DRAGOVER;
  1151.          PROCEDURE DMDragLeave(VAR Msg:TMessage); message DM_DRAGLEAVE;
  1152.          PROCEDURE DMDrop(VAR Msg:TMessage); message DM_DROP;
  1153.          PROCEDURE WMControl(VAR Msg:TMessage); message WM_CONTROL;
  1154.          PROCEDURE WMButton1Down(VAR Msg:TWMButton1Down); message WM_BUTTON1DOWN;
  1155.          PROCEDURE WMButton2Down(VAR Msg:TWMButton2Down); message WM_BUTTON2DOWN;
  1156.          PROCEDURE WMSize(VAR Msg:TWMSize); message WM_SIZE;
  1157.          PROCEDURE WMMove(VAR Msg:TWMMove); message WM_MOVE;
  1158.          PROCEDURE WMPaint(VAR Msg:TMessage); message WM_PAINT;
  1159.          PROCEDURE WMEraseBackGround(VAR Msg:TMessage); message WM_ERASEBACKGROUND;
  1160.          PROCEDURE WMPresParamChanged(VAR Msg:TMessage); message WM_PRESPARAMCHANGED;
  1161.          PROCEDURE WMChar(VAR Msg:TWMChar); message WM_CHAR;
  1162.          PROCEDURE WMQueryConvertPos(VAR Msg:TMessage); message WM_QUERYCONVERTPOS;
  1163.          PROCEDURE WMCommand(VAR Msg:TWMCommand); message WM_COMMAND;
  1164.          PROCEDURE WMSetFocus(VAR Msg:TWMSetFocus); message WM_SETFOCUS;
  1165.          PROCEDURE WMButton1Up(VAR Msg:TWMButton1Up); message WM_BUTTON1UP;
  1166.          PROCEDURE WMButton2Up(VAR Msg:TWMButton2Up); message WM_BUTTON2UP;
  1167.          PROCEDURE WMButton1Click(VAR Msg:TWMButton1Click); message WM_BUTTON1CLICK;
  1168.          PROCEDURE WMButton1DblClk(VAR Msg:TWMButton1DblClk); message WM_BUTTON1DBLCLK;
  1169.          PROCEDURE WMButton2Click(VAR Msg:TWMButton2Click); message WM_BUTTON2CLICK;
  1170.          PROCEDURE WMButton2DblClk(VAR Msg:TWMButton2DblClk); message WM_BUTTON2DBLCLK;
  1171.          PROCEDURE WMMouseMove(VAR Msg:TWMMouseMove); message WM_MOUSEMOVE;
  1172.          PROCEDURE WMHScroll(VAR Msg:TWMScroll); message WM_HSCROLL;
  1173.          PROCEDURE WMVScroll(VAR Msg:TWMScroll); message WM_VSCROLL;
  1174.          PROCEDURE WMDestroy(VAR Msg:TWMDestroy); message WM_DESTROY;
  1175.          PROCEDURE WMTimer(VAR Msg:TWMTimer); message WM_TIMER;
  1176.          PROCEDURE WMCaptureFocus(VAR Msg:TMessage); message WM_CAPTUREFOCUS;
  1177.          PROCEDURE WMHelp(VAR Msg:TMessage); message WM_HELP;
  1178.          {$ENDIF}
  1179.          {$IFDEF Win32}
  1180.          PROCEDURE WMButton1Down(VAR Msg:TWMButton1Down); message WM_LBUTTONDOWN;
  1181.          PROCEDURE WMButton2Down(VAR Msg:TWMButton2Down); message WM_RBUTTONDOWN;
  1182.          PROCEDURE WMSize(VAR Msg:TWMSize); message WM_SIZE;
  1183.          PROCEDURE WMMove(VAR Msg:TWMMove); message WM_MOVE;
  1184.          PROCEDURE WMPaint(VAR Msg:TMessage); message WM_PAINT;
  1185.          PROCEDURE WMEraseBackGround(VAR Msg:TMessage); message WM_ERASEBKGND;
  1186.          PROCEDURE WMCommand(VAR Msg:TWMCommand); message WM_COMMAND;
  1187.          PROCEDURE WMChar(VAR Msg:TWMChar); message WM_CHAR;
  1188.          PROCEDURE WMKillFocus(VAR Msg:TMessage); message WM_KILLFOCUS;
  1189.          PROCEDURE WMSetFocus(VAR Msg:TWMSetFocus); message WM_SETFOCUS;
  1190.          PROCEDURE WMButton1Up(VAR Msg:TWMButton1Up); message WM_LBUTTONUP;
  1191.          PROCEDURE WMButton2Up(VAR Msg:TWMButton2Up); message WM_RBUTTONUP;
  1192.          PROCEDURE WMButton1DblClk(VAR Msg:TWMButton1DblClk); message WM_LBUTTONDBLCLK;
  1193.          PROCEDURE WMButton2DblClk(VAR Msg:TWMButton2DblClk); message WM_RBUTTONDBLCLK;
  1194.          PROCEDURE WMKeyDown(VAR Msg:TMessage); message WM_KEYDOWN;
  1195.          PROCEDURE WMSysKeyDown(VAR Msg:TMessage); message WM_SYSKEYDOWN;
  1196.          PROCEDURE WMMouseMove(VAR Msg:TWMMouseMove); message WM_MOUSEMOVE;
  1197.          PROCEDURE WMSetCursor(VAR Msg:TMessage); message WM_SETCURSOR;
  1198.          PROCEDURE WMHScroll(VAR Msg:TWMScroll); message WM_HSCROLL;
  1199.          PROCEDURE WMVScroll(VAR Msg:TWMScroll); message WM_VSCROLL;
  1200.          PROCEDURE WMCtlColorBtn(VAR Msg:TMessage); message WM_CTLCOLORBTN;
  1201.          PROCEDURE WMCtlColorStatic(VAR Msg:TMessage); message WM_CTLCOLORSTATIC;
  1202.          PROCEDURE WMCtlColorDlg(VAR Msg:TMessage); message WM_CTLCOLORDLG;
  1203.          PROCEDURE WMCtlColorScrollBar(VAR Msg:TMessage); message WM_CTLCOLORSCROLLBAR;
  1204.          PROCEDURE WMCtlColorEdit(VAR Msg:TMessage); message WM_CTLCOLOREDIT;
  1205.          PROCEDURE WMCtlColorListBox(VAR Msg:TMessage); message WM_CTLCOLORLISTBOX;
  1206.          PROCEDURE WMDestroy(VAR Msg:TWMDestroy); message WM_DESTROY;
  1207.          PROCEDURE WMNCDestroy(VAR Msg:TMessage); message WM_NCDESTROY;
  1208.          PROCEDURE WMTimer(VAR Msg:TWMTimer); message WM_TIMER;
  1209.          PROCEDURE WMCaptureFocus(VAR Msg:TMessage); message WM_CAPTUREFOCUS;
  1210.          PROCEDURE WMNotify(VAR Msg:TMessage); message WM_NOTIFY;
  1211.          {$ENDIF}
  1212.          PROCEDURE WMMeasureItem(VAR Msg:TMessage); message WM_MEASUREITEM;
  1213.          PROCEDURE WMDrawItem(VAR Msg:TMessage); message WM_DRAWITEM;
  1214.  
  1215.          PROCEDURE SendScanMessage(VAR Msg:TWMChar;VAR KeyCode:TKeyCode;RepeatCount:BYTE);
  1216.          PROCEDURE SendCharMessage(VAR Msg:TWMChar;VAR ch:CHAR;RepeatCount:BYTE);
  1217.          FUNCTION GetDesignerCoordinates(VAR pt:TPoint):TControl;
  1218.          PROCEDURE SetText(CONST NewCaption:STRING);
  1219.          FUNCTION GetText:STRING;
  1220.          FUNCTION GetControlCount:LONGINT;
  1221.          FUNCTION GetControl(AIndex:LONGINT):TControl;
  1222.          PROCEDURE SetColor(NewColor:TColor);VIRTUAL;
  1223.          PROCEDURE SetPenColor(NewColor:TColor);VIRTUAL;
  1224.          PROCEDURE SetParentFont(Value:BOOLEAN);
  1225.          PROCEDURE SetParentPenColor(Value:BOOLEAN);
  1226.          PROCEDURE SetParentColor(Value:BOOLEAN);
  1227.          PROCEDURE ParentFontChanged(VAR Msg:TMessage); message CM_PARENTFONTCHANGED;
  1228.          PROCEDURE ParentPenColorChanged(VAR Msg:TMessage); message CM_PARENTPENCOLORCHANGED;
  1229.          PROCEDURE ParentColorChanged(VAR Msg:TMessage); message CM_PARENTCOLORCHANGED;
  1230.          PROCEDURE SetCursor(Index:TCursor);
  1231.          FUNCTION GetWindowRect:TRect;
  1232.          FUNCTION GetBoundsRect:TRect;
  1233.          FUNCTION GetClientRect:TRect;VIRTUAL;
  1234.          FUNCTION GetClientWidth:LONGINT;
  1235.          FUNCTION GetClientHeight:LONGINT;
  1236.          PROCEDURE SetClientWidth(NewWidth:LONGINT);VIRTUAL;
  1237.          PROCEDURE SetClientHeight(NewHeight:LONGINT);VIRTUAL;
  1238.          FUNCTION GetClientOrigin:TPoint;VIRTUAL;
  1239.          FUNCTION GetParentClientWidth:LONGINT;
  1240.          FUNCTION GetParentClientHeight:LONGINT;
  1241.          PROCEDURE SetWidth(NewWidth:LONGINT);
  1242.          FUNCTION GetWidth:LONGINT;
  1243.          PROCEDURE SetHeight(NewHeight:LONGINT);VIRTUAL;
  1244.          FUNCTION GetHeight:LONGINT;
  1245.          PROCEDURE SetLeft(NewLeft:LONGINT);VIRTUAL;
  1246.          FUNCTION GetLeft:LONGINT;VIRTUAL;
  1247.          PROCEDURE SetBottom(NewBottom:LONGINT);VIRTUAL;
  1248.          FUNCTION GetBottom:LONGINT;VIRTUAL;
  1249.          PROCEDURE SetTop(NewTop:LONGINT);VIRTUAL;
  1250.          FUNCTION GetTop:LONGINT;
  1251.          PROCEDURE SetRight(NewRight:LONGINT);VIRTUAL;
  1252.          FUNCTION GetRight:LONGINT;
  1253.          PROCEDURE SetAlign(NewAlign:TAlign);
  1254.          FUNCTION GetAlign:TAlign;
  1255.          PROCEDURE SetXAlign(NewAlign:TXAlign);
  1256.          FUNCTION GetXAlign:TXAlign;
  1257.          PROCEDURE SetYAlign(NewAlign:TYAlign);
  1258.          FUNCTION GetYAlign:TYAlign;
  1259.          PROCEDURE SetXStretch(NewStretch:TXStretch);
  1260.          FUNCTION GetXStretch:TXStretch;
  1261.          PROCEDURE SetYStretch(NewStretch:TYStretch);
  1262.          FUNCTION GetYStretch:TYStretch;
  1263.          PROCEDURE SetZOrder(zo:TZOrder);
  1264.          PROCEDURE UpdateFont;
  1265.          PROCEDURE Enable;
  1266.          PROCEDURE Disable;
  1267.          FUNCTION GetEnabled:BOOLEAN;
  1268.          PROCEDURE SetEnabled(NewState:BOOLEAN);
  1269.          FUNCTION IsWindowVisible:BOOLEAN;
  1270.          FUNCTION GetShowing:BOOLEAN;
  1271.          FUNCTION GetVisible:BOOLEAN;
  1272.          PROCEDURE SetVisible(NewState:BOOLEAN);
  1273.          FUNCTION GetTabOrder:LONGINT;VIRTUAL;
  1274.          PROCEDURE SetTabOrder(Value:LONGINT);
  1275.          FUNCTION GetWindowFlags:LONGWORD;
  1276.          PROCEDURE SetHint(CONST NewText:STRING);
  1277.          FUNCTION GetHint:STRING;
  1278.          PROCEDURE SetShowHint(Value:BOOLEAN);
  1279.          FUNCTION GetShowHint:BOOLEAN;
  1280.          PROCEDURE SetMouseCapture(captive:BOOLEAN);
  1281.          PROCEDURE SetUpdateEnabled(Value:BOOLEAN);
  1282.          PROCEDURE SetParent(AParent:TControl);
  1283.          {$IFDEF Win32}
  1284.          PROCEDURE SetCtlColor(VAR Msg:TMessage);
  1285.          {$ENDIF}
  1286.          PROCEDURE Insert(AChild:TControl);
  1287.          PROCEDURE Remove(AChild:TControl);
  1288.          FUNCTION GetNextTabControl:TControl;
  1289.          FUNCTION GetPrevTabControl:TControl;
  1290.          PROCEDURE FocusTabControl(next:BOOLEAN);
  1291.          PROCEDURE FocusKeyControl(KeyCode:TKeyCode);
  1292.          FUNCTION GetLastMsg:TLastMsg;
  1293.          {$IFDEF OS2}
  1294.          FUNCTION SetPPFontNameSize(CONST FNS:STRING):BOOLEAN;
  1295.          FUNCTION SetPPForeGroundColor(AColor:TColor):BOOLEAN;
  1296.          FUNCTION SetPPBackGroundColor(AColor:TColor):BOOLEAN;
  1297.          {$ENDIF}
  1298.          PROCEDURE DragFinished(Target:TObject; X,Y:LONGINT; Accepted:BOOLEAN);
  1299.          PROCEDURE DragFree;
  1300.          PROCEDURE SetPopupMenu(NewMenu:TPopupMenu);
  1301.       PROTECTED
  1302.          PROCEDURE SetFont(NewFont:TFont);VIRTUAL;
  1303.          PROCEDURE DefaultHandler(VAR Msg);OVERRIDE;
  1304.          PROCEDURE WndProc(VAR Msg:TMessage);VIRTUAL;
  1305.          PROCEDURE UpdateWindowPos(NewLeft,NewBottom,NewWidth,NewHeight:LONGINT);VIRTUAL;
  1306.          PROCEDURE Scroll(Sender:TScrollBar;ScrollCode:TScrollCode;VAR ScrollPos:LONGINT);VIRTUAL;
  1307.          FUNCTION QueryConvertPos(VAR pos:TPoint):BOOLEAN;VIRTUAL;
  1308.          PROCEDURE CharEvent(VAR Key:CHAR;RepeatCount:BYTE);VIRTUAL;
  1309.          PROCEDURE ScanEvent(VAR KeyCode:TKeyCode;RepeatCount:BYTE);VIRTUAL;
  1310.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);VIRTUAL;
  1311.          PROCEDURE MouseUp(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);VIRTUAL;
  1312.          PROCEDURE MouseMove(ShiftState:TShiftState;X,Y:LONGINT);VIRTUAL;
  1313.          PROCEDURE MouseClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);VIRTUAL;
  1314.          PROCEDURE MouseDblClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);VIRTUAL;
  1315.          PROCEDURE CheckMenuPopup(pt:TPoint);VIRTUAL;
  1316.          PROCEDURE Resize;VIRTUAL;
  1317.          PROCEDURE Move;VIRTUAL;
  1318.          PROCEDURE SetFocus;VIRTUAL;
  1319.          PROCEDURE KillFocus;VIRTUAL;
  1320.          PROCEDURE Paint(CONST rec:TRect);VIRTUAL;
  1321.          PROCEDURE SetupComponent;OVERRIDE;
  1322.          PROCEDURE CreateParams(VAR Params:TCreateParams);VIRTUAL;
  1323.          PROCEDURE GetClassData(VAR ClassData:TClassData);VIRTUAL;
  1324.          {$IFDEF Win32}
  1325.          PROCEDURE CreateSubClass(VAR ClassData:TClassData;CONST ControlClassName:CSTRING);
  1326.          {$ENDIF}
  1327.          PROCEDURE RegisterClass;VIRTUAL;
  1328.          PROCEDURE LoadedFromSCU(SCUParent:TComponent);OVERRIDE;
  1329.          PROCEDURE SetupShow;VIRTUAL;
  1330.          PROCEDURE CreateError;VIRTUAL;
  1331.          PROCEDURE CreateWnd;VIRTUAL;
  1332.          PROCEDURE RecreateWnd;VIRTUAL;
  1333.          PROCEDURE CreateControls;VIRTUAL;
  1334.          PROCEDURE DisposeWnd;VIRTUAL;
  1335.          PROCEDURE DestroyWnd;VIRTUAL;
  1336.          PROCEDURE DestroyHandle;
  1337.          PROCEDURE RealignControls;VIRTUAL;
  1338.          PROCEDURE CommandEvent(VAR Command:TCommand);VIRTUAL;
  1339.          PROCEDURE ParentNotification(VAR Msg:TMessage);VIRTUAL;
  1340.          PROCEDURE DesignerNotification(VAR DNS:TDesignerNotifyStruct);VIRTUAL;
  1341.          FUNCTION EvaluateShortCut(KeyCode:TKeyCode):BOOLEAN;VIRTUAL;
  1342.          PROCEDURE CanDrag(X,Y:LONGINT;VAR Accept:BOOLEAN);VIRTUAL;
  1343.          PROCEDURE DoStartDrag(VAR DragData:TDragDropData);VIRTUAL;
  1344.          PROCEDURE DoEndDrag(Target:TObject; X,Y:LONGINT);VIRTUAL;
  1345.          PROCEDURE DragCanceled;VIRTUAL;
  1346.          PROCEDURE DragOver(Source:TObject;X,Y:LONGINT;State:TDragState;VAR Accept:BOOLEAN);VIRTUAL;
  1347.          PROCEDURE FontChange;VIRTUAL;
  1348.          PROCEDURE NotifyControls(MsgId:ULONG);
  1349.          PROCEDURE GetChildren(Proc:TGetChildProc);OVERRIDE;
  1350.          FUNCTION HasParent:BOOLEAN;OVERRIDE;
  1351.          PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
  1352.       PUBLIC
  1353.          PROCEDURE BeginDrag(Immediate:BOOLEAN); {zZ dummy Parameter}
  1354.          PROCEDURE DragDrop(Source:TObject;X,Y:LONGINT);VIRTUAL;
  1355.          PROCEDURE CreateDragCanvas;
  1356.          PROCEDURE DeleteDragCanvas;
  1357.          DESTRUCTOR Destroy;OVERRIDE;
  1358.          PROCEDURE Show;VIRTUAL;
  1359.          PROCEDURE Hide;VIRTUAL;
  1360.          PROCEDURE BringToFront;VIRTUAL;
  1361.          PROCEDURE SendToBack;VIRTUAL;
  1362.          PROCEDURE InsertControl(AChild:TControl);VIRTUAL;
  1363.          PROCEDURE RemoveControl(AChild:TControl);VIRTUAL;
  1364.          PROCEDURE DestroyControls;
  1365.          FUNCTION CreateCanvas:TCanvas;VIRTUAL;
  1366.          PROCEDURE Redraw(CONST rec:TRect);VIRTUAL;
  1367.          PROCEDURE Refresh;
  1368.          PROCEDURE Repaint;
  1369.          PROCEDURE Update;VIRTUAL;
  1370.          PROCEDURE Invalidate;VIRTUAL;
  1371.          PROCEDURE InvalidateRect(CONST rec:TRect);
  1372.          PROCEDURE SetWindowPos(NewLeft,NewBottom,NewWidth,NewHeight:LONGINT);VIRTUAL;
  1373.          PROCEDURE SetBounds(NewLeft,NewTop,NewWidth,NewHeight:LONGINT);VIRTUAL; {VCL}
  1374.          PROCEDURE Focus;
  1375.          PROCEDURE CaptureFocus;
  1376.          FUNCTION Perform(MsgId:ULONG;mp1,mp2:LONG):LONG;
  1377.          PROCEDURE Broadcast(VAR Msg:TMessage);
  1378.          FUNCTION GetControlFromPoint(pt:TPoint):TControl;
  1379.          FUNCTION ClientToScreen(CONST Point:TPoint):TPoint;
  1380.          FUNCTION ScreenToClient(CONST Point:TPoint):TPoint;
  1381.          PROCEDURE MapPoints(Target:TControl;VAR pts:ARRAY OF TPoint);
  1382.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  1383.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  1384.          PROCEDURE ToTop;VIRTUAL;
  1385.          PROCEDURE ToBottom;
  1386.       PROTECTED
  1387.          PROPERTY CursorTabStop:BOOLEAN read FCursorTabStop write FCursorTabStop;
  1388.          PROPERTY DefWndProc:TWndProc read FDefWndProc write FDefWndProc;
  1389.          PROPERTY Form:TForm read FForm;
  1390.          PROPERTY HandlesDesignKey:BOOLEAN read FHandlesDesignKey write FHandlesDesignKey;
  1391.          PROPERTY HandlesDesignMouse:BOOLEAN read FHandlesDesignMouse write FHandlesDesignMouse;
  1392.          PROPERTY LastDragOperation:TDragDropOperation read FLastDragOperation;
  1393.          PROPERTY LastMsg:TLastMsg read GetLastMsg;
  1394.          PROPERTY Ownerdraw:BOOLEAN read FOwnerdraw write FOwnerdraw;
  1395.  
  1396.          PROPERTY Color:TColor read FColor write SetColor;
  1397.          PROPERTY Caption:STRING read GetText write SetText;
  1398.          PROPERTY Command:TCommand read FCommand write FCommand;
  1399.          PROPERTY DragCursor:TCursor read FDragCursor write FDragCursor;
  1400.          PROPERTY DragMode:TDragMode read FDragMode write FDragMode;
  1401.          PROPERTY Font:TFont read FFont write SetFont;
  1402.          PROPERTY ParentColor:BOOLEAN read FParentColor write SetParentColor;
  1403.          PROPERTY ParentFont:BOOLEAN read FParentFont write SetParentFont;
  1404.          PROPERTY ParentPenColor:BOOLEAN read FParentPenColor write SetParentPenColor;
  1405.          PROPERTY ParentShowHint:BOOLEAN read FParentShowHint write FParentShowHint;
  1406.          PROPERTY PenColor:TColor read FPenColor write SetPenColor;
  1407.          PROPERTY PopupMenu:TPopupMenu read FPopupMenu write SetPopupMenu;
  1408.          PROPERTY ShowHint:BOOLEAN read FShowHint write SetShowHint;
  1409.          PROPERTY Text:STRING read GetText write SetText;
  1410.          PROPERTY ZOrder:TZOrder read FZOrder write SetZOrder;
  1411.  
  1412.          PROPERTY OnCanDrag:TCanDragEvent read FOnCanDrag write FOnCanDrag;
  1413.          PROPERTY OnKeyPress:TKeyPressEvent read FOnKeyPress write FOnKeyPress;
  1414.          PROPERTY OnCommand:TCommandEvent read FOnCommand write FOnCommand;
  1415.          PROPERTY OnDblClick:TNotifyEvent read FOnDblClick write FOnDblClick;
  1416.          PROPERTY OnDragDrop:TDragDropEvent read FOnDragDrop write FOnDragDrop;
  1417.          PROPERTY OnDragOver:TDragOverEvent read FOnDragOver write FOnDragOver;
  1418.          PROPERTY OnEndDrag:TEndDragEvent read FOnEndDrag write FOnEndDrag;
  1419.          PROPERTY OnEnter:TNotifyEvent read FOnEnter write FOnEnter;
  1420.          PROPERTY OnExit:TNotifyEvent read FOnExit write FOnExit;
  1421.          PROPERTY OnFontChange:TNotifyEvent read FOnFontChange write FOnFontChange;
  1422.          PROPERTY OnHide:TNotifyEvent read FOnHide write FOnHide;
  1423.          PROPERTY OnMouseClick:TMouseEvent read FOnMouseClick write FOnMouseClick;
  1424.          PROPERTY OnMouseDblClick:TMouseEvent read FOnMouseDblClick write FOnMouseDblClick;
  1425.          PROPERTY OnMouseDown:TMouseEvent read FOnMouseDown write FOnMouseDown;
  1426.          PROPERTY OnMouseMove:TMouseMoveEvent read FOnMouseMove write FOnMouseMove;
  1427.          PROPERTY OnMouseUp:TMouseEvent read FOnMouseUp write FOnMouseUp;
  1428.          PROPERTY OnMove:TNotifyEvent read FOnMove write FOnMove;
  1429.          PROPERTY OnPaint:TPaintEvent read FOnPaint write FOnPaint;
  1430.          PROPERTY OnResize:TNotifyEvent read FOnResize write FOnResize;
  1431.          PROPERTY OnScan:TScanEvent read FOnScan write FOnScan;
  1432.          PROPERTY OnSetupShow:TNotifyEvent read FOnSetupShow write FOnSetupShow;
  1433.          PROPERTY OnShow:TNotifyEvent read FOnShow write FOnShow;
  1434.          PROPERTY OnStartDrag:TStartDragEvent read FOnStartDrag write FOnStartDrag;
  1435.       PUBLIC
  1436.          PROPERTY Align:TAlign read GetAlign write SetAlign;
  1437.          PROPERTY BoundsRect:TRect read GetBoundsRect;
  1438.          PROPERTY Canvas:TCanvas read FCanvas;
  1439.          PROPERTY ClientHeight:LONGINT read GetClientHeight write SetClientHeight;
  1440.          PROPERTY ClientOrigin:TPoint read GetClientOrigin;
  1441.          PROPERTY ClientRect:TRect read GetClientRect;
  1442.          PROPERTY ClientWidth:LONGINT read GetClientWidth write SetClientWidth;
  1443.          PROPERTY ControlCount:LONGINT read GetControlCount;
  1444.          PROPERTY Controls[Index:LONGINT]:TControl read GetControl;
  1445.          PROPERTY Dragging:BOOLEAN read FDragging;
  1446.          PROPERTY Enabled:BOOLEAN read GetEnabled write SetEnabled;
  1447.          PROPERTY Handle:HWindow read FHandle;
  1448.          PROPERTY HasFocus:BOOLEAN read FHasFocus;
  1449.          PROPERTY MouseCapture:BOOLEAN read FMouseCapture write SetMouseCapture;
  1450.          PROPERTY Parent:TControl read FParent write SetParent;
  1451.          PROPERTY Showing:BOOLEAN read GetShowing;
  1452.          PROPERTY TabOrder:LONGINT read GetTabOrder write SetTabOrder;
  1453.          PROPERTY TabStop:BOOLEAN read FTabStop write FTabStop;
  1454.          PROPERTY UpdateEnabled:BOOLEAN read FUpdateEnabled write SetUpdateEnabled;
  1455.          PROPERTY Visible:BOOLEAN read GetVisible write SetVisible;
  1456.          PROPERTY WindowRect:TRect read GetWindowRect;
  1457.          PROPERTY XAlign:TXAlign read GetXAlign write SetXAlign;
  1458.          PROPERTY XStretch:TXStretch read GetXStretch write SetXStretch;
  1459.          PROPERTY YAlign:TYAlign read GetYAlign write SetYAlign;
  1460.          PROPERTY YStretch:TYStretch read GetYStretch write SetYStretch;
  1461.       PUBLISHED
  1462.          PROPERTY Bottom:LONGINT read GetBottom write SetBottom;
  1463.          PROPERTY Height:LONGINT read GetHeight write SetHeight;
  1464.          PROPERTY HelpContext:THelpContext read FHelpContext write FHelpContext;
  1465.          PROPERTY Hint:STRING read GetHint write SetHint;
  1466.          PROPERTY Left:LONGINT read GetLeft write SetLeft;
  1467.          PROPERTY Cursor:TCursor read FCursor write SetCursor;
  1468.          PROPERTY Right:LONGINT read GetRight write SetRight; stored FALSE;
  1469.          PROPERTY Top:LONGINT read GetTop write SetTop; stored FALSE;
  1470.          PROPERTY Width:LONGINT read GetWidth write SetWidth;
  1471.     END;
  1472.  
  1473.  
  1474.     TBitBltMode=(cmSrcCopy, cmSrcPaint, cmSrcAnd, cmSrcInvert,
  1475.                  cmSrcErase, cmNotSrcCopy, cmNotSrcErase,
  1476.                  cmMergeCopy, cmMergePaint, cmPatCopy, cmPatPaint,
  1477.                  cmPatInvert, cmDstInvert, cmBlackness, cmWhiteness);
  1478.  
  1479.     TBitBltFlags=(bitfOr,bitfAnd,bitfIgnore);
  1480.  
  1481.  
  1482.     {$M+}
  1483.     TPenStyle = (psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear,
  1484.                  psInsideFrame);
  1485.     TPenMode = (pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, pmMergePenNot,
  1486.                 pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, pmNotMerge,
  1487.                 pmMask, pmNotMask, pmXor, pmNotXor);
  1488.     {$M-}
  1489.  
  1490.     TPen=CLASS(TComponent)
  1491.       PRIVATE
  1492.          FCanvas:TCanvas;
  1493.          FColor:TColor;
  1494.          FStyle:TPenStyle;
  1495.          FMode:TPenMode;
  1496.          FWidth:LONGINT;
  1497.          PROCEDURE SetColor(NewColor:TColor);
  1498.          PROCEDURE SetMode(NewMode:TPenMode);
  1499.          PROCEDURE SetStyle(NewStyle:TPenStyle);
  1500.          PROCEDURE SetWidth(NewWidth:LongInt);
  1501.       PUBLIC
  1502.          PROCEDURE SetupComponent;OVERRIDE;
  1503.       PUBLISHED
  1504.          PROPERTY Color:TColor read FColor write SetColor;
  1505.          PROPERTY Mode:TPenMode read FMode write SetMode;
  1506.          PROPERTY Style:TPenStyle read FStyle write SetStyle;
  1507.          PROPERTY Width:LongInt read FWidth write SetWidth;
  1508.     END;
  1509.  
  1510.     {$M+}
  1511.     TBrushStyle = (bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal,
  1512.                    bsBDiagonal, bsCross, bsDiagCross);
  1513.     TBrushMode  = (bmTransparent,bmOpaque);
  1514.     {$M-}
  1515.  
  1516.     TBrush=CLASS(TComponent)
  1517.       PRIVATE
  1518.          FCanvas:TCanvas;
  1519.          FBitmap:TGraphic;
  1520.          FColor:TColor;
  1521.          FStyle:TBrushStyle;
  1522.          FMode:TBrushMode;
  1523.          PROCEDURE SetColor(NewColor:TColor);
  1524.          PROCEDURE SetStyle(NewStyle:TBrushStyle);
  1525.          PROCEDURE SetBitmap(NewBitmap:TGraphic);
  1526.          PROCEDURE SetMode(NewMode:TBrushMode);
  1527.       PUBLIC
  1528.          PROCEDURE SetupComponent;OVERRIDE;
  1529.          DESTRUCTOR Destroy;OVERRIDE;
  1530.          PROPERTY Bitmap:TGraphic read FBitmap write SetBitmap;
  1531.       PUBLISHED
  1532.          PROPERTY Color:TColor read FColor write SetColor;
  1533.          PROPERTY Style:TBrushStyle read FStyle write SetStyle;
  1534.          PROPERTY Mode:TBrushMode read FMode write SetMode;
  1535.     END;
  1536.  
  1537.  
  1538.     {$M+}
  1539.     TSizeBorderEvent=PROCEDURE(Sender:TObject;VAR SizeDelta:LONGINT) OF OBJECT;
  1540.     TSizeBorderAlign=(baVertical,baHorizontal,baTop,baBottom,baLeft,baRight,
  1541.                       baParentWidth,baParentHeight);
  1542.     {$M-}
  1543.  
  1544.     TSizeBorder=CLASS(TControl)
  1545.       PRIVATE
  1546.          FBorderAlign:TSizeBorderAlign;
  1547.          FSizing:BOOLEAN;
  1548.          FOffs:LONGINT;
  1549.          FDelta:LONGINT;
  1550.          OldFgMode:TPenMode;
  1551.          OldLineWidth:LONGINT;
  1552.          OldLineType:TPenStyle;
  1553.          FOnSizing:TSizeBorderEvent;
  1554.          FOnSized:TSizeBorderEvent;
  1555.          PROCEDURE SetBorderAlign(Value:TSizeBorderAlign);
  1556.          PROCEDURE DrawSizeLine;
  1557.       PROTECTED
  1558.          PROCEDURE SetupComponent;OVERRIDE;
  1559.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  1560.          PROCEDURE MouseUp(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  1561.          PROCEDURE MouseMove(ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  1562.          PROPERTY Hint;
  1563.          PROPERTY Cursor;
  1564.       PUBLIC
  1565.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  1566.       PUBLISHED
  1567.          PROPERTY BorderAlign:TSizeBorderAlign read FBorderAlign write SetBorderAlign;
  1568.          PROPERTY OnSized:TSizeBorderEvent read FOnSized write FOnSized;
  1569.          PROPERTY OnSizing:TSizeBorderEvent read FOnSizing write FOnSizing;
  1570.     END;
  1571.  
  1572.  
  1573.     TToolBar=CLASS(TControl)
  1574.       PRIVATE
  1575.          FAlignment:TToolBarAlign;
  1576.          FBevelStyle:TToolBarBevel;
  1577.          FSizeable:BOOLEAN;
  1578.          FOrder:LONGINT;
  1579.          SizeBorderCtrl:TSizeBorder;
  1580.          FOnClick:TNotifyEvent;
  1581.          PROCEDURE SetAlignment(NewAlign:TToolBarAlign);
  1582.          PROCEDURE SetBevelStyle(NewStyle:TToolBarBevel);
  1583.          PROCEDURE SetSize(NewSize:LONGINT);
  1584.          FUNCTION GetSize:LONGINT;
  1585.          FUNCTION GetLeft:LONGINT;OVERRIDE;
  1586.          FUNCTION GetBottom:LONGINT;OVERRIDE;
  1587.          PROCEDURE SetLeft(NewLeft:LONGINT);OVERRIDE;
  1588.          PROCEDURE SetBottom(NewBottom:LONGINT);OVERRIDE;
  1589.          PROCEDURE SetTop(NewTop:LONGINT);OVERRIDE;
  1590.          PROCEDURE SetRight(NewRight:LONGINT);OVERRIDE;
  1591.          PROCEDURE SetSizeable(Value:BOOLEAN);
  1592.          PROCEDURE SetOrder(Value:LONGINT);
  1593.          FUNCTION GetOrder:LONGINT;
  1594.          PROCEDURE EvBorderSizing(Sender:TObject;VAR SizeDelta:LONGINT);
  1595.          PROCEDURE EvBorderSized(Sender:TObject;VAR SizeDelta:LONGINT);
  1596.       PROTECTED
  1597.          PROCEDURE SetupComponent;OVERRIDE;
  1598.          PROCEDURE CreateWnd;OVERRIDE;
  1599.          PROCEDURE SetupShow;OVERRIDE;
  1600.          PROCEDURE MouseClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  1601.       PUBLIC
  1602.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  1603.          PROCEDURE SetWindowPos(NewLeft,NewBottom,NewWidth,NewHeight:LONGINT);OVERRIDE;
  1604.          PROCEDURE EnableCommands(Cmds:ARRAY OF TCommand);   {raus}
  1605.          PROCEDURE DisableCommands(Cmds:ARRAY OF TCommand);  {raus}
  1606.          PROCEDURE Hide;OVERRIDE;
  1607.          PROCEDURE Show;OVERRIDE;
  1608.          PROPERTY Bottom;
  1609.          PROPERTY Height;
  1610.          PROPERTY Left;
  1611.          PROPERTY Right;
  1612.          PROPERTY Top;
  1613.          PROPERTY Width;
  1614.       PUBLISHED
  1615.          PROPERTY Alignment:TToolBarAlign read FAlignment write SetAlignment;
  1616.          PROPERTY Color;
  1617.          PROPERTY BevelStyle:TToolBarBevel read FBevelStyle write SetBevelStyle;
  1618.          PROPERTY Enabled;
  1619.          PROPERTY PenColor;
  1620.          PROPERTY Font;
  1621.          PROPERTY HelpContext;
  1622.          PROPERTY Order:LONGINT read GetOrder write SetOrder; stored FALSE;
  1623.          PROPERTY ParentColor;
  1624.          PROPERTY ParentPenColor;
  1625.          PROPERTY ParentFont;
  1626.          PROPERTY ParentShowHint;
  1627.          PROPERTY PopupMenu;
  1628.          PROPERTY ShowHint;
  1629.          PROPERTY Size:LONGINT read GetSize write SetSize;
  1630.          PROPERTY Sizeable:BOOLEAN read FSizeable write SetSizeable;
  1631.  
  1632.          PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
  1633.          PROPERTY OnDblClick;
  1634.          PROPERTY OnCommand;
  1635.          PROPERTY OnDragDrop;
  1636.          PROPERTY OnDragOver;
  1637.          PROPERTY OnEndDrag;
  1638.          PROPERTY OnFontChange;
  1639.          PROPERTY OnMouseClick;
  1640.          PROPERTY OnMouseDblClick;
  1641.          PROPERTY OnMouseDown;
  1642.          PROPERTY OnMouseMove;
  1643.          PROPERTY OnMouseUp;
  1644.          PROPERTY OnResize;
  1645.          PROPERTY OnSetupShow;
  1646.     END;
  1647.  
  1648.  
  1649. {$M+}
  1650.     TScrollBarKind=(sbHorizontal,sbVertical);
  1651.  
  1652.     TScrollEvent=PROCEDURE(Sender:TObject;ScrollCode:TScrollCode;
  1653.                              VAR ScrollPos:LONGINT) OF OBJECT;
  1654. {$M-}
  1655.     TScrollBarInc=1..32767;
  1656.  
  1657.     TScrollBar=CLASS(TControl)
  1658.       PRIVATE
  1659.          lastpos:LONGINT;
  1660.          FMin:LONGINT;
  1661.          FMax:LONGINT;
  1662.          FSliderSize:LONGINT;
  1663.          FCalcRange:LONGINT;
  1664.          FPosition:LONGINT;
  1665.          FScale:EXTENDED;
  1666.          FSmallChange:TScrollBarInc;
  1667.          FLargeChange:TScrollBarInc;
  1668.          FKind:TScrollBarKind;
  1669.          FOnScroll:TScrollEvent;
  1670.          FOnChange:TNotifyEvent;
  1671.          PROCEDURE SetPosition(NewPosition:LONGINT);
  1672.          PROCEDURE SetMin(NewMin:LONGINT);
  1673.          PROCEDURE SetMax(NewMax:LONGINT);
  1674.          PROCEDURE SetSliderSize(NewSliderSize:LONGINT);
  1675.          PROCEDURE SetKind(NewKind:TScrollBarKind);
  1676.          PROCEDURE SetPenColor(NewColor:TColor);OVERRIDE;
  1677.          PROCEDURE SetColor(NewColor:TColor);OVERRIDE;
  1678.       PROTECTED
  1679.          PROCEDURE SetupComponent;OVERRIDE;
  1680.          PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
  1681.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  1682.          PROCEDURE SetupShow;OVERRIDE;
  1683.       PUBLIC
  1684.          PROCEDURE SetScrollRange(aMin,aMax,aSliderSize:LONGINT);
  1685.          PROCEDURE SetParams(aPosition,aMin,aMax:LONGINT);
  1686.          PROPERTY XAlign;
  1687.          PROPERTY XStretch;
  1688.          PROPERTY YAlign;
  1689.          PROPERTY YStretch;
  1690.       PUBLISHED
  1691.          PROPERTY Align;
  1692.          PROPERTY Color;
  1693.          PROPERTY DragCursor;
  1694.          PROPERTY DragMode;
  1695.          PROPERTY Enabled;
  1696.          PROPERTY Kind:TScrollBarKind read FKind write SetKind;
  1697.          PROPERTY LargeChange:TScrollBarInc read FLargeChange write FLargeChange;
  1698.          PROPERTY Max:LONGINT read FMax write SetMax;
  1699.          PROPERTY Min:LONGINT read FMin write SetMin;
  1700.          PROPERTY ParentShowHint;
  1701.          PROPERTY PopupMenu;
  1702.          PROPERTY Position:LONGINT read FPosition write SetPosition;
  1703.          PROPERTY ShowHint;
  1704.          PROPERTY SliderSize:LONGINT read FSliderSize write SetSliderSize;
  1705.          PROPERTY SmallChange:TScrollBarInc read FSmallChange write FSmallChange;
  1706.          PROPERTY TabOrder;
  1707.          PROPERTY TabStop;
  1708.          PROPERTY Visible;
  1709.          PROPERTY ZOrder;
  1710.  
  1711.          PROPERTY OnCanDrag;
  1712.          PROPERTY OnChange:TNotifyEvent read FOnChange write FOnChange;
  1713.          PROPERTY OnDragDrop;
  1714.          PROPERTY OnDragOver;
  1715.          PROPERTY OnEndDrag;
  1716.          PROPERTY OnEnter;
  1717.          PROPERTY OnExit;
  1718.          PROPERTY OnMouseMove;
  1719.          PROPERTY OnScan;
  1720.          PROPERTY OnScroll:TScrollEvent read FOnScroll write FOnScroll;
  1721.          PROPERTY OnSetupShow;
  1722.          PROPERTY OnStartDrag;
  1723.     END;
  1724.  
  1725.  
  1726.     TScrollingWinControl=CLASS(TControl)
  1727.       PRIVATE
  1728.          FScrollBars:TScrollStyle;
  1729.          FHorzScrollBar:TScrollBar;
  1730.          FVertScrollBar:TScrollBar;
  1731.       PROTECTED
  1732.          DESTRUCTOR Destroy;OVERRIDE;
  1733.          PROCEDURE Resize;OVERRIDE;
  1734.          PROCEDURE Paint(CONST rec:TRect);OVERRIDE;
  1735.          PROCEDURE AlignScrollBars;VIRTUAL;
  1736.          PROCEDURE SetScrollBars(NewValue:TScrollStyle);
  1737.          FUNCTION GetClientRect:TRect;OVERRIDE;
  1738.          PROCEDURE SetClientWidth(NewWidth:LONGINT);OVERRIDE;
  1739.          PROCEDURE SetClientHeight(NewHeight:LONGINT);OVERRIDE;
  1740.          PROCEDURE SetupComponent;OVERRIDE;
  1741.          PROCEDURE SetupShow;OVERRIDE;
  1742.          PROCEDURE Scroll(Sender:TScrollBar;ScrollCode:TScrollCode;VAR ScrollPos:LONGINT);OVERRIDE;
  1743.       PUBLIC
  1744.          PROPERTY HorzScrollBar:TScrollBar read FHorzScrollBar;
  1745.          PROPERTY VertScrollBar:TScrollBar read FVertScrollBar;
  1746.          PROPERTY ScrollBars:TScrollStyle read FScrollBars write SetScrollBars;
  1747.     END;
  1748.  
  1749.  
  1750. {$M+}
  1751.     TCloseAction=(caNone,caHide,caFree,caMinimize,caFreeHandle);
  1752.  
  1753.     TWindowState=(wsNormal,wsMinimized,wsMaximized);
  1754.  
  1755.     TBorderIcons=SET OF (biSystemMenu,biMinimize,biMaximize);
  1756.  
  1757.     TFormBorderStyle=(fbsNone,fbsSingle,fbsSizeable,fbsDialog);
  1758.  
  1759.     TFormStyle=(fsNormal,fsMDIChild,fsMDIForm);
  1760.  
  1761.     TTileMode=(tbHorizontal,tbVertical,tbNormal);
  1762.  
  1763.     TBorderStyle=(bsNone,bsSingle);
  1764.  
  1765.     TCloseEvent=PROCEDURE(Sender:TObject;VAR Action:TCloseAction) OF OBJECT;
  1766.     TCloseQueryEvent=PROCEDURE(Sender:TObject;VAR CanClose:BOOLEAN) OF OBJECT;
  1767.     TMDIActivateEvent=PROCEDURE(Sender:TObject;Child:TForm) OF OBJECT;
  1768.     TMDIDeactivateEvent=PROCEDURE(Sender:TObject;Child:TForm) OF OBJECT;
  1769.     TTranslateShortCutEvent=PROCEDURE(Sender:TObject;Keycode:TKeyCode;VAR Receiver:TForm) OF OBJECT;
  1770. {$M-}
  1771.  
  1772.     {FAccelList item}
  1773.     PAccelItem=^AccelItem;
  1774.     AccelItem=RECORD
  1775.          KeyCode:TKeyCode;
  1776.          Command:TCommand;
  1777.     END;
  1778.  
  1779.  
  1780.     TForm=CLASS(TScrollingWinControl)
  1781.       PRIVATE
  1782.          FMainMenu:TMainMenu;
  1783.          FLastMenu:TMenu;
  1784.          FLastEntry:TMenuItem;
  1785.          FMenuHandleList:TList;
  1786.          FAccelList:TList;
  1787.          FAccel:LONGWORD;
  1788.          FShortCutsEnabled:BOOLEAN;
  1789.          FTopMDIChild:TForm;
  1790.          FIsModal:BOOLEAN;
  1791.          FModalShowing:BOOLEAN;
  1792.          FModalResult:TCommand;
  1793.          FLocked:BOOLEAN;
  1794.          FWindowState:TWindowState;
  1795.          FBorderIcons:TBorderIcons;
  1796.          FBorderStyle:TFormBorderStyle;
  1797.          FFormStyle:TFormStyle;
  1798.          FTileMode:TTileMode;
  1799.          FMinTrackWidth:LONGINT;
  1800.          FMinTrackHeight:LONGINT;
  1801.          FMaxTrackWidth:LONGINT;
  1802.          FMaxTrackHeight:LONGINT;
  1803.          FEnableDocking:TToolbarAlignments;
  1804.          FMoveable:BOOLEAN;
  1805.          FSizeable:BOOLEAN;
  1806.          FActiveControl:TControl;
  1807.          FMDIChildren:TList;
  1808.          FToolBarLists:ARRAY[TToolbarAlign] OF TList;
  1809.          FIcon:TGraphic;
  1810.          FInternalWindowIdCount:LONGWORD;
  1811.          FDBCSStatusLine:BOOLEAN;
  1812.          DefaultButton:TControl;
  1813.          CancelButton:TControl;
  1814.          FOnActivate:TNotifyEvent;
  1815.          FOnDeactivate:TNotifyEvent;
  1816.          FOnMDIActivate:TMDIActivateEvent;
  1817.          FOnMDIDeactivate:TMDIDeactivateEvent;
  1818.          FOnClose:TCloseEvent;
  1819.          FOnCloseQuery:TCloseQueryEvent;
  1820.          FOnDismissDlg:TNotifyEvent;
  1821.          FOnMenuInit:TMenuEvent;
  1822.          FOnMenuEnd:TMenuEvent;
  1823.          FOnMenuItemFocus:TMenuEvent;
  1824.          FOnTranslateShortCut:TTranslateShortCutEvent;
  1825.          FOnMinimize:TNotifyEvent;
  1826.          FOnMaximize:TNotifyEvent;
  1827.          FOnRestore:TNotifyEvent;
  1828.          FOnClick:TNotifyEvent;
  1829.          PROCEDURE CMRelease(VAR Msg:TMessage); message CM_RELEASE;
  1830.          PROCEDURE CMUpdateButtons(VAR Msg:TMessage); message CM_UPDATEBUTTONS;
  1831.          PROCEDURE WMActivate(VAR Msg:TWMActivate); message WM_ACTIVATE;
  1832.          {$IFDEF OS2}
  1833.          PROCEDURE WMClose(VAR Msg:TWMClose); message WM_CLOSE;
  1834.          PROCEDURE WMInitMenu(VAR Msg:TMessage); message WM_INITMENU;
  1835.          PROCEDURE WMMenuEnd(VAR Msg:TMessage); message WM_MENUEND;
  1836.          PROCEDURE WMMenuSelect(VAR Msg:TMessage); message WM_MENUSELECT;
  1837.          PROCEDURE WMTranslateAccel(VAR Msg:TMessage); message WM_TRANSLATEACCEL;
  1838.          PROCEDURE WMDDEInitiate(VAR Msg:TMessage); message WM_DDE_INITIATE;
  1839.          PROCEDURE WMDDEDestroy(VAR Msg:TMessage); message WM_DDE_DESTROY;
  1840.          {$ENDIF}
  1841.          PROCEDURE AlignToolBars;
  1842.          FUNCTION GetFrameFlags:LONGWORD;
  1843.          FUNCTION GetMDIChildCount:LONGINT;
  1844.          FUNCTION GetMDIChild(AIndex:LONGINT):TForm;
  1845.          PROCEDURE SetWindowState(NewState:TWindowState);
  1846.          FUNCTION GetWindowState:TWindowState;
  1847.          PROCEDURE SetBorderIcons(NewIcons:TBorderIcons);
  1848.          PROCEDURE SetBorderStyle(NewStyle:TFormBorderStyle);
  1849.          FUNCTION GetTabOrder:LONGINT;OVERRIDE;
  1850.          FUNCTION GetAddWidth:LONGINT;
  1851.          FUNCTION GetAddHeight:LONGINT;
  1852.          FUNCTION GetClientRect:TRect;OVERRIDE;
  1853.          PROCEDURE SetClientWidth(NewWidth:LONGINT);OVERRIDE;
  1854.          PROCEDURE SetClientHeight(NewHeight:LONGINT);OVERRIDE;
  1855.          FUNCTION GetClientOrigin:TPoint;OVERRIDE;
  1856.          PROCEDURE SetDBCSStatusLine(Value:BOOLEAN);
  1857.          PROCEDURE SetActiveControl(AControl:TControl);
  1858.          PROCEDURE ForwardShortCut(VAR Msg:TMessage);
  1859.          PROCEDURE SetIcon(NewIcon:TGraphic);
  1860.          FUNCTION GetIcon:TGraphic;
  1861.          PROCEDURE IconChanged(Sender:TObject);
  1862.          PROCEDURE SetMainMenu(AMenu:TMainMenu);
  1863.          PROCEDURE SetShortCutsEnabled(Value:BOOLEAN);
  1864.          PROCEDURE SetFormStyle(Value:TFormStyle);
  1865.          PROCEDURE InsertMDIChild(Child:TForm);
  1866.          PROCEDURE RemoveMDIChild(Child:TForm);
  1867.          PROCEDURE CreateUniqueWindowId(AChild:TControl);
  1868.       PROTECTED
  1869.          PROCEDURE CreateControls;OVERRIDE;
  1870.          PROCEDURE RealignControls;OVERRIDE;
  1871.          PROCEDURE Activate;VIRTUAL;
  1872.          PROCEDURE Deactivate;VIRTUAL;
  1873.          PROCEDURE MDIActivate(Child:TForm);VIRTUAL;
  1874.          PROCEDURE MDIDeactivate(Child:TForm);VIRTUAL;
  1875.          FUNCTION GetTileCascadeRect:TRect;VIRTUAL;
  1876.          PROCEDURE ScanEvent(VAR KeyCode:TKeyCode;RepeatCount:BYTE);OVERRIDE;
  1877.          PROCEDURE CommandEvent(VAR Command:TCommand);OVERRIDE;
  1878.          PROCEDURE TranslateShortCut(Keycode:TKeyCode;VAR Receiver:TForm);VIRTUAL;
  1879.          FUNCTION CloseQuery:BOOLEAN;VIRTUAL;
  1880.          PROCEDURE EndModalState;VIRTUAL;
  1881.          PROCEDURE SetupComponent;OVERRIDE;
  1882.          PROCEDURE CreateWnd;OVERRIDE;
  1883.          PROCEDURE SetupShow;OVERRIDE;
  1884.          PROCEDURE SetFocus;OVERRIDE;
  1885.          PROCEDURE Resize;OVERRIDE;
  1886.          PROCEDURE MouseClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  1887.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  1888.          PROCEDURE MenuInit(AMenu:TMenu;Entry:TMenuItem);VIRTUAL;
  1889.          PROCEDURE MenuEnd(AMenu:TMenu;Entry:TMenuItem);VIRTUAL;
  1890.          PROCEDURE MenuItemFocus(AMenu:TMenu;Entry:TMenuItem);VIRTUAL;
  1891.          PROCEDURE MenuCharEvent(AMenu:TMenu;Entry:TMenuItem;VAR Key:CHAR;rep:BYTE);VIRTUAL;
  1892.          PROCEDURE MenuScanEvent(AMenu:TMenu;Entry:TMenuItem;VAR KeyCode:TKeyCode;rep:BYTE);VIRTUAL;
  1893.          PROCEDURE LoadedFromSCU(SCUParent:TComponent);OVERRIDE;
  1894.       PUBLIC
  1895.          CONSTRUCTOR Create(AOwner:TComponent);OVERRIDE;
  1896.          CONSTRUCTOR CreateNew(AOwner:TComponent);
  1897.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  1898.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  1899.          DESTRUCTOR Destroy;OVERRIDE;
  1900.          PROCEDURE Release;
  1901.          FUNCTION ShowModal:LONGWORD;VIRTUAL;
  1902.          PROCEDURE DismissDlg(result:TCommand);VIRTUAL;
  1903.          PROCEDURE Close;VIRTUAL;
  1904.          PROCEDURE InsertComponent(AComponent:TComponent);OVERRIDE;
  1905.          PROCEDURE RemoveComponent(AComponent:TComponent);OVERRIDE;
  1906.          PROCEDURE InsertControl(AChild:TControl);OVERRIDE;
  1907.          PROCEDURE RemoveControl(AChild:TControl);OVERRIDE;
  1908.          PROCEDURE SetWindowPos(NewLeft,NewBottom,NewWidth,NewHeight:LONGINT);OVERRIDE;
  1909.          PROCEDURE BringToFront;OVERRIDE;
  1910.          PROCEDURE Tile;VIRTUAL;
  1911.          PROCEDURE Cascade;VIRTUAL;
  1912.          PROCEDURE ArrangeIcons;VIRTUAL;
  1913.          PROCEDURE Next;VIRTUAL;
  1914.          PROCEDURE Previous;VIRTUAL;
  1915.          PROCEDURE CloseAll;VIRTUAL;
  1916.          PROCEDURE AddShortCut(KeyCode:TKeyCode;Command:TCommand);
  1917.          PROCEDURE ToTop;OVERRIDE;
  1918.          PROCEDURE DeleteShortCut(KeyCode:TKeyCode);
  1919.          PROPERTY Moveable:BOOLEAN read FMoveable write FMoveable; {only OS2}
  1920.          PROPERTY Sizeable:BOOLEAN read FSizeable write FSizeable; {only OS2}
  1921.       PUBLIC
  1922.          PROPERTY ModalResult:TCommand read FModalResult write FModalResult;
  1923.          PROPERTY IsModal:BOOLEAN read FIsModal;
  1924.          PROPERTY TileMode:TTileMode read FTileMode write FTileMode;
  1925.          PROPERTY MDIChildren[Index:LONGINT]:TForm read GetMDIChild;
  1926.          PROPERTY MDIChildCount:LONGINT read GetMDIChildCount;
  1927.          PROPERTY ActiveMDIChild:TForm read FTopMDIChild;
  1928.          PROPERTY ActiveControl:TControl read FActiveControl write SetActiveControl;
  1929.          PROPERTY Frame:TControl read FFrame;
  1930.          PROPERTY DBCSStatusLine:BOOLEAN read FDBCSStatusLine write SetDBCSStatusLine;
  1931.          PROPERTY ShortCutsEnabled:BOOLEAN read FShortCutsEnabled write SetShortCutsEnabled;
  1932.          PROPERTY XAlign;
  1933.          PROPERTY XStretch;
  1934.          PROPERTY YAlign;
  1935.          PROPERTY YStretch;
  1936.       PUBLISHED
  1937.          PROPERTY Align;
  1938.          PROPERTY Color;
  1939.          PROPERTY BorderIcons:TBorderIcons read FBorderIcons write SetBorderIcons;
  1940.          PROPERTY BorderStyle:TFormBorderStyle read FBorderStyle write SetBorderStyle;
  1941.          PROPERTY Caption;
  1942.          PROPERTY ClientWidth;
  1943.          PROPERTY ClientHeight;
  1944.          PROPERTY Menu:TMainMenu read FMainMenu write SetMainMenu;
  1945.          PROPERTY MaxTrackWidth:LONGINT read FMaxTrackWidth write FMaxTrackWidth;
  1946.          PROPERTY MaxTrackHeight:LONGINT read FMaxTrackHeight write FMaxTrackHeight;
  1947.          PROPERTY MinTrackWidth:LONGINT read FMinTrackWidth write FMinTrackWidth;
  1948.          PROPERTY MinTrackHeight:LONGINT read FMinTrackHeight write FMinTrackHeight;
  1949.          PROPERTY PenColor;
  1950.          PROPERTY PopupMenu;
  1951.          PROPERTY Enabled;
  1952.          PROPERTY EnableDocking:TToolbarAlignments read FEnableDocking write FEnableDocking;
  1953.          PROPERTY Font;
  1954.          PROPERTY FormStyle:TFormStyle read FFormStyle write SetFormStyle;
  1955.          PROPERTY Icon:TGraphic read GetIcon write SetIcon;
  1956.          PROPERTY ScrollBars;     {wie OnScroll im Designer belegen?}
  1957.          PROPERTY ShowHint;
  1958.          PROPERTY Visible;
  1959.          PROPERTY WindowState:TWindowState read GetWindowState write SetWindowState;
  1960.  
  1961.          PROPERTY OnActivate:TNotifyEvent read FOnActivate write FOnActivate;
  1962.          PROPERTY OnKeyPress;
  1963.          PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
  1964.          PROPERTY OnClose:TCloseEvent read FOnClose write FOnClose;
  1965.          PROPERTY OnCloseQuery:TCloseQueryEvent read FOnCloseQuery write FOnCloseQuery;
  1966.          PROPERTY OnCommand;
  1967.          PROPERTY OnDblClick;
  1968.          PROPERTY OnDeactivate:TNotifyEvent read FOnDeactivate write FOnDeactivate;
  1969.          PROPERTY OnDismissDlg:TNotifyEvent read FOnDismissDlg write FOnDismissDlg;
  1970.          PROPERTY OnDragDrop;
  1971.          PROPERTY OnDragOver;
  1972.          PROPERTY OnEndDrag;
  1973.          PROPERTY OnFontChange;
  1974.          PROPERTY OnHide;
  1975.          PROPERTY OnMaximize:TNotifyEvent read FOnMaximize write FOnMaximize;
  1976.          PROPERTY OnMDIActivate:TMDIActivateEvent read FOnMDIActivate write FOnMDIActivate;
  1977.          PROPERTY OnMDIDeactivate:TMDIDeactivateEvent read FOnMDIDeactivate write FOnMDIDeactivate;
  1978.          PROPERTY OnMenuEnd:TMenuEvent read FOnMenuEnd write FOnMenuEnd;
  1979.          PROPERTY OnMenuInit:TMenuEvent read FOnMenuInit write FOnMenuInit;
  1980.          PROPERTY OnMenuItemFocus:TMenuEvent read FOnMenuItemFocus write FOnMenuItemFocus;
  1981.          PROPERTY OnMinimize:TNotifyEvent read FOnMinimize write FOnMinimize;
  1982.          PROPERTY OnMouseClick;
  1983.          PROPERTY OnMouseDblClick;
  1984.          PROPERTY OnMouseDown;
  1985.          PROPERTY OnMouseMove;
  1986.          PROPERTY OnMouseUp;
  1987.          PROPERTY OnMove;
  1988.          PROPERTY OnPaint;
  1989.          PROPERTY OnResize;
  1990.          PROPERTY OnRestore:TNotifyEvent read FOnRestore write FOnRestore;
  1991.          PROPERTY OnScan;
  1992.          PROPERTY OnSetupShow;
  1993.          PROPERTY OnShow;
  1994.          PROPERTY OnTranslateShortCut:TTranslateShortCutEvent read FOnTranslateShortCut write FOnTranslateShortCut;
  1995.     END;
  1996.  
  1997.  
  1998.     HCursor=LONGWORD;
  1999.  
  2000.     PCursorRec=^TCursorRec;
  2001.     TCursorRec=RECORD
  2002.          Index:TCursor;
  2003.          Handle:HCursor;
  2004.          Next:PCursorRec;
  2005.     END;
  2006.  
  2007.  
  2008.     TScreen=CLASS(TComponent)
  2009.       PRIVATE
  2010.          FFonts:TList;                      //Font list available (TFont)
  2011.          FCursor:TCursor;
  2012.          FCursorList:PCursorRec;  //Mouse cursor list available
  2013.          FDefaultCursor:HCursor;
  2014.          FForms:TList;                      //Forms on the Desktop (TForm)
  2015.          FActiveForm:TForm;                 //Active desktop form
  2016.          FActiveControl:TControl;
  2017.          FCanvas:TCanvas;
  2018.          FMenuFont:TFont;
  2019.          FSystemFont:TFont;
  2020.          FDefaultFont:TFont;
  2021.          FDefaultFrameFont:TFont;
  2022.          FFontWindow:TControl;              //FontWindow for OS/2
  2023.          FPopupWindow:TControl;             //Window for PopupMenus
  2024.          PROCEDURE CreateCursors;
  2025.          PROCEDURE DestroyCursors;
  2026.          PROCEDURE InsertCursor(Index:TCursor;Handle:HCursor);
  2027.          PROCEDURE DeleteCursor(Index:TCursor);
  2028.          FUNCTION GetCursors(Index:TCursor):HCursor;
  2029.          PROCEDURE SetCursors(Index:TCursor;Handle:HCursor);
  2030.          PROCEDURE SetCursor(Index:TCursor);
  2031.          FUNCTION GetHeight:LONGINT;
  2032.          FUNCTION GetWidth:LONGINT;
  2033.          FUNCTION GetFormCount:LONGINT;
  2034.          FUNCTION GetForm(Index:LONGINT):TForm;
  2035.          FUNCTION GetFontCount:LONGINT;
  2036.          FUNCTION GetFont(Index:LONGINT):TFont;
  2037.          FUNCTION GetMousePos:TPoint;
  2038.          PROCEDURE SetMousePos(NewPos:TPoint);
  2039.          FUNCTION GetSystemDefaultFont:TFont;
  2040.          FUNCTION GetSystemFixedFont:TFont;
  2041.          FUNCTION GetSystemSmallFont:TFont;
  2042.       PROTECTED
  2043.          PROCEDURE SetupComponent;OVERRIDE;
  2044.       PUBLIC
  2045.          DESTRUCTOR Destroy;OVERRIDE;
  2046.          FUNCTION CreateCompatibleFont(Src:TFont):TFont;
  2047.          FUNCTION GetFontFromName(FaceName:STRING;Height,Width:LONGINT):TFont;
  2048.          FUNCTION GetFontFromPointSize(FaceName:STRING;PointSize:LONGWORD):TFont;
  2049.          FUNCTION GetControlFromPoint(pt:TPoint):TControl;
  2050.          FUNCTION SystemMetrics(sm:TSystemMetrics):LONGINT;
  2051.          FUNCTION SystemColors(sc:TColor):TColor;
  2052.          PROCEDURE Update;
  2053.          PROCEDURE MapPoints(Target:TControl;VAR pts:ARRAY OF TPoint);
  2054.          FUNCTION AddCursor(Handle:HCursor):TCursor;
  2055.          PROPERTY Width:LONGINT read GetWidth;
  2056.          PROPERTY Height:LONGINT read GetHeight;
  2057.          PROPERTY Forms[Index:LONGINT]:TForm read GetForm;
  2058.          PROPERTY FormCount:LONGINT read GetFormCount;
  2059.          PROPERTY ActiveForm:TForm read FActiveForm;
  2060.          PROPERTY ActiveControl:TControl read FActiveControl;
  2061.          PROPERTY MousePos:TPoint read GetMousePos write SetMousePos;
  2062.          PROPERTY Cursor:TCursor read FCursor write SetCursor;
  2063.          PROPERTY Cursors[Index:TCursor]:HCursor read GetCursors write SetCursors;
  2064.          PROPERTY Fonts[Index:LONGINT]:TFont read GetFont;
  2065.          PROPERTY FontCount:LONGINT read GetFontCount;
  2066.          PROPERTY DefaultFrameFont:TFont read FDefaultFrameFont;
  2067.          PROPERTY DefaultFont:TFont read GetSystemDefaultFont;
  2068.          PROPERTY FixedFont:TFont read GetSystemFixedFont;
  2069.          PROPERTY SmallFont:TFont read GetSystemSmallFont;
  2070.          PROPERTY Canvas:TCanvas read FCanvas;
  2071.          PROPERTY MenuFont:TFont read FMenuFont;
  2072.     END;
  2073.  
  2074.  
  2075.     TGraphic=CLASS(TComponent)
  2076.       PRIVATE
  2077.             FIsLocalCopy:BOOLEAN;
  2078.             FOnChangedNotify:TNotifyEvent;
  2079.       PUBLIC
  2080.          PROCEDURE Draw(Canvas:TCanvas;CONST Dest:TRect);VIRTUAL;ABSTRACT;
  2081.          PROCEDURE PartialDraw(Canvas:TCanvas;CONST Src,Dest:TRect);VIRTUAL;ABSTRACT;
  2082.          PROCEDURE LoadFromFile(CONST FileName:STRING);VIRTUAL;
  2083.          PROCEDURE SaveToFile(CONST FileName:STRING);VIRTUAL;
  2084.          PROCEDURE LoadFromStream(Stream:TStream);VIRTUAL;ABSTRACT;
  2085.          PROCEDURE SaveToStream(Stream:TStream);VIRTUAL;ABSTRACT;
  2086.          FUNCTION CopyGraphic:TGraphic;VIRTUAL;ABSTRACT;
  2087.          PROCEDURE Changed;VIRTUAL;
  2088.       PROTECTED
  2089.          FUNCTION GetEmpty:BOOLEAN;VIRTUAL;ABSTRACT;
  2090.          FUNCTION GetHeight:LONGINT;VIRTUAL;ABSTRACT;
  2091.          PROCEDURE SetHeight(NewHeight:LONGINT);VIRTUAL;ABSTRACT;
  2092.          FUNCTION GetWidth:LONGINT;VIRTUAL;ABSTRACT;
  2093.          PROCEDURE SetWidth(NewWidth:LONGINT);VIRTUAL;ABSTRACT;
  2094.          FUNCTION GetHandle:LONGWORD;VIRTUAL;ABSTRACT;
  2095.          FUNCTION GetCanvas:TCanvas;VIRTUAL;ABSTRACT;
  2096.          FUNCTION GetSize:LongInt;VIRTUAL;ABSTRACT;
  2097.          FUNCTION WriteSCUResourceName(Stream:TResourceStream;ResName:TResourceName):BOOLEAN;VIRTUAL;ABSTRACT;
  2098.          PROCEDURE PaletteChanged;VIRTUAL;ABSTRACT;
  2099.       PUBLIC
  2100.          PROPERTY Empty:BOOLEAN read GetEmpty;
  2101.          PROPERTY Height:LONGINT read GetHeight write SetHeight;
  2102.          PROPERTY Width:LONGINT read GetWidth write SetWidth;
  2103.          PROPERTY Handle:LONGWORD read GetHandle;
  2104.          PROPERTY Canvas:TCanvas read GetCanvas;
  2105.          PROPERTY Size:LONGINT read GetSize;
  2106.     END;
  2107.     TGraphicClass=CLASS OF TGraphic;
  2108.  
  2109.  
  2110.     TPalette=CLASS(TComponent)
  2111.       PRIVATE
  2112.          FHandle:LONGWORD;
  2113.          FCanvas:TCanvas;
  2114.       PRIVATE
  2115.          FUNCTION GetColor(Index:LONGWORD):TColor;
  2116.          PROCEDURE SetColor(Index:LONGWORD;NewColor:TColor);
  2117.          FUNCTION GetColorCount:LONGWORD;
  2118.       PROTECTED
  2119.          PROCEDURE SetupComponent;OVERRIDE;
  2120.       PUBLIC
  2121.          FUNCTION GetColorArray(StartIndex:LONGWORD;VAR ResultArray:ARRAY OF TColor):LONGWORD;
  2122.          PROCEDURE SetColorArray(StartIndex:LONGWORD;CONST SourceArray:ARRAY OF TColor);
  2123.          PROPERTY ColorCount:LONGWORD read GetColorCount;
  2124.          PROPERTY Handle:LONGWORD read FHandle write FHandle;
  2125.          PROPERTY Colors[Index:LONGWORD]:TColor read GetColor write SetColor;
  2126.          PROPERTY Canvas:TCanvas read FCanvas;
  2127.     END;
  2128.  
  2129.     TPathClipMode=(paAdd,paSubtract,paReplace,paDiff,paIntersect);
  2130.  
  2131.     TCanvas=CLASS(TComponent)
  2132.       PRIVATE
  2133.          FControl:TControl;
  2134.          FGraphic:TGraphic;
  2135.          {$IFDEF OS2}
  2136.          FUsePath:BOOLEAN;
  2137.          {$ENDIF}
  2138.          {$IFDEF Win32}
  2139.          FPenHandle:LONGWORD;
  2140.          FBrushHandle:LONGWORD;
  2141.          {$ENDIF}
  2142.          FFont:TFont;
  2143.          FFontHandle:LONGWORD;
  2144.          FFontWidth,FFontHeight:LONGINT;
  2145.          FFontAttr:TFontAttributes;
  2146.          FLineWidth:LONGINT;
  2147.          FLineType:TPenStyle;
  2148.          FBackMix:TBrushMode;
  2149.          FForeMix:TPenMode;
  2150.          FClipRGN:LONGWORD;
  2151.          FClipRect:TRect;
  2152.          FHandle:LONGWORD;
  2153.          FPalette:TPalette;
  2154.          FBrush:TBrush;
  2155.          FPen:TPen;
  2156.          FCopyMode:TBitBltMode;
  2157.          FUNCTION GetPenPosition:TPoint;
  2158.          PROCEDURE SetPenPosition(NewPosition:TPoint);
  2159.          PROCEDURE CreateFont(NewFont:TFont;ModifyControlFont:BOOLEAN);
  2160.          PROCEDURE SetFont(NewFont:TFont);
  2161.          PROCEDURE SetFontHeight(NewHeight:LONGINT);
  2162.          FUNCTION GetFontHeight:LONGINT;
  2163.          PROCEDURE SetFontWidth(NewWidth:LONGINT);
  2164.          FUNCTION GetFontWidth:LONGINT;
  2165.          PROCEDURE SetFontAttr(NewAttr:TFontAttributes);
  2166.          FUNCTION GetFontAttr:TFontAttributes;
  2167.          PROCEDURE SetClipRect(CONST Rec:TRect);
  2168.          FUNCTION GetPixel(X,Y:LONGINT):TColor;
  2169.          PROCEDURE SetPixel(X,Y:LONGINT;Value:TColor);
  2170.          FUNCTION GetVerticalRes:LONGINT;
  2171.          FUNCTION GetHorizontalRes:LONGINT;
  2172.          PROCEDURE SetPen(NewPen:TPen);
  2173.          PROCEDURE SetBrush(NewBrush:TBrush);
  2174.          PROCEDURE SetPalette(NewPalette:TPalette);
  2175.       PROTECTED
  2176.          PROCEDURE SetupComponent;OVERRIDE;
  2177.       PUBLIC
  2178.          DESTRUCTOR Destroy;OVERRIDE;
  2179.          PROCEDURE EraseBackGround;VIRTUAL;
  2180.          PROCEDURE Init;VIRTUAL;
  2181.  
  2182.          PROCEDURE FillRect(CONST Rec:TRect;FillColor:TColor);VIRTUAL;
  2183.          PROCEDURE MoveTo(X,Y:LONGINT);VIRTUAL;
  2184.          PROCEDURE LineTo(X,Y:LONGINT);VIRTUAL;
  2185.          PROCEDURE Line(X,Y,X1,Y1:LONGINT);VIRTUAL;
  2186.          PROCEDURE PolyLine(Points:ARRAY OF TPoint);VIRTUAL;
  2187.          PROCEDURE Polygon(Points:ARRAY OF TPoint);VIRTUAL;
  2188.          PROCEDURE ShadowedBorder(CONST Rec:TRect;ColorHi,ColorLo:TColor);
  2189.          PROCEDURE RoundShadowedBorder(CONST Rec:TRect;ColorHi,ColorLo:TColor);
  2190.          PROCEDURE DrawFocusRect(CONST Rec:TRect);
  2191.          PROCEDURE Rectangle(CONST Rec:TRect);
  2192.          PROCEDURE RoundRect(CONST Rec:TRect;RoundWidth,RoundHeight:LONGINT);
  2193.          PROCEDURE DrawInvertRect(CONST Rec:TRect);
  2194.          PROCEDURE Box(CONST Rec:TRect);
  2195.          PROCEDURE OutlineBox(CONST Rec:TRect);
  2196.          PROCEDURE Circle(X,Y:LONGINT;Radius:LONGINT);
  2197.          PROCEDURE Arc(X,Y:LONGINT;RadiusX,RadiusY:LONGINT;StartAngle,SweepAngle:EXTENDED);
  2198.          PROCEDURE Chord(X,Y:LONGINT;RadiusX,RadiusY:LONGINT;StartAngle,SweepAngle:EXTENDED);
  2199.          PROCEDURE Pie(X,Y:LONGINT;RadiusX,RadiusY:LONGINT;StartAngle,SweepAngle:EXTENDED);
  2200.          PROCEDURE CopyRect(CONST Dest:TRect;Canvas:TCanvas;CONST Source:TRect);
  2201.          PROCEDURE BezierSpline(X,Y:LONGINT;Points:ARRAY OF TPoint);
  2202.          PROCEDURE FilledCircle(X,Y:LONGINT;Radius:LONGINT);
  2203.          PROCEDURE Ellipse(X,Y:LONGINT;RadiusX,RadiusY:LONGINT);
  2204.          PROCEDURE FilledEllipse(X,Y:LONGINT;RadiusX,RadiusY:LONGINT);
  2205.          PROCEDURE DrawString(CONST s:STRING);
  2206.          PROCEDURE TextOut(X,Y:LONGINT;CONST s:STRING);
  2207.          PROCEDURE MnemoTextOut(X,Y:LONGINT;CONST s:STRING);
  2208.          PROCEDURE Draw(X,Y:LONGINT;Graphic:TGraphic);
  2209.          PROCEDURE PartialDraw(X,Y:LONGINT;CONST SourceRec:TRect;Graphic:TGraphic);
  2210.          PROCEDURE StretchDraw(X,Y,Width,Height:LONGINT;Graphic:TGraphic);
  2211.          PROCEDURE StretchPartialDraw(X,Y,Width,Height:LONGINT;CONST SourceRec:TRect;Graphic:TGraphic);
  2212.          FUNCTION TextHeight(CONST Text:STRING):LONGINT;
  2213.          FUNCTION TextWidth(CONST Text:STRING):LONGINT;
  2214.          PROCEDURE TextRect(CONST rc:TRect;X,Y:LONGINT;CONST Text:STRING);
  2215.          PROCEDURE FloodFill(X,Y:LONGINT;BorderColor:TColor;FillSurface:BOOLEAN);
  2216.          PROCEDURE GetTextExtent(CONST s:STRING;VAR Width,Height:LONGINT);
  2217.          PROCEDURE SetClipRegion(Rects:ARRAY OF TRect);
  2218.          PROCEDURE DeleteClipRegion;
  2219.          PROCEDURE ExcludeClipRect(CONST Rec:TRect);
  2220.          PROCEDURE BitBlt(DestCanvas:TCanvas;CONST Dest,Source:TRect;
  2221.                           Mode:TBitBltMode;Flags:TBitBltFlags);
  2222.          PROCEDURE BeginPath;
  2223.          PROCEDURE EndPath;
  2224.          PROCEDURE FillPath;
  2225.          PROCEDURE StrokePath;
  2226.          PROCEDURE OutlinePath;
  2227.          PROCEDURE CloseFigure;
  2228.          PROCEDURE PathToClipRegion(Mode:TPathClipMode);
  2229.       PUBLIC
  2230.          PROPERTY Handle:LONGWORD read FHandle write FHandle;
  2231.          PROPERTY Graphic:TGraphic read FGraphic;
  2232.          PROPERTY Control:TControl read FControl;
  2233.          PROPERTY PenPos:TPoint read GetPenPosition write SetPenPosition;
  2234.          PROPERTY Font:TFont read FFont write SetFont;
  2235.          PROPERTY FontHeight:LONGINT read GetFontHeight write SetFontHeight;
  2236.          PROPERTY FontWidth:LONGINT read GetFontWidth write SetFontWidth;
  2237.          PROPERTY FontAttributes:TFontAttributes read GetFontAttr write SetFontAttr;
  2238.          PROPERTY ClipRect:TRect read FClipRect write SetClipRect;
  2239.          PROPERTY Pixels[X,Y:LONGINT]:TColor read GetPixel write SetPixel;
  2240.          PROPERTY Palette:TPalette read FPalette write SetPalette;
  2241.          PROPERTY VerticalResolution:LONGINT read GetVerticalRes;
  2242.          PROPERTY HorizontalResolution:LONGINT read GetHorizontalRes;
  2243.          PROPERTY Pen:TPen read FPen write SetPen;
  2244.          PROPERTY Brush:TBrush read FBrush write SetBrush;
  2245.          PROPERTY CopyMode:TBitBltMode read FCopyMode write FCopyMode;
  2246.     END;
  2247.  
  2248.  
  2249. TYPE
  2250.     TPlatform=(OS2Ver20, OS2Ver30, OS2Ver40, Win32);
  2251.  
  2252.     THintInfo=RECORD
  2253.                    HintControl:TControl;
  2254.                    HintPos:TPoint;
  2255.                    HintMaxWidth:LONGINT;
  2256.                    HintColor:TColor;
  2257.                    HintPenColor:TColor;
  2258.                    CursorRect:TRect;
  2259.                    CursorPos:TPoint;
  2260.     END;
  2261.  
  2262. {$M+}
  2263.     TMessageEvent=PROCEDURE(VAR Msg:TMessage;VAR Handled:BOOLEAN) OF OBJECT;
  2264.     TIdleEvent=PROCEDURE(Sender:TObject;VAR Done:BOOLEAN) OF OBJECT;
  2265.     TGetHintExtentEvent=PROCEDURE(Sender:TObject;CONST Bubble:STRING;VAR Width,Height:LONGINT) OF OBJECT;
  2266.     TDrawHintEvent=PROCEDURE(Sender:TObject;CONST Bubble:STRING;CONST rec:TRect) OF OBJECT;
  2267.     TExceptionEvent=PROCEDURE(Sender:TObject;E:Exception) OF OBJECT;
  2268.     THelpEvent=PROCEDURE(Context:THelpContext;VAR result:BOOLEAN) OF OBJECT;
  2269.     TShowHintEvent=PROCEDURE(VAR HintStr:STRING;VAR CanShow:BOOLEAN;VAR HintInfo:THintInfo) OF OBJECT;
  2270. {$M-}
  2271.  
  2272. {$M+}
  2273.     THintOrigin=(hiTop,hiBottom);
  2274. {$M-}
  2275.  
  2276.  
  2277.     TApplication=CLASS(TComponent)
  2278.       PRIVATE
  2279.          FMainForm:TForm;
  2280.          FShowMainForm:BOOLEAN;
  2281.          FIcon:TGraphic;
  2282.          FHelpFile:PString;
  2283.          FHelpWindowTitle:PString;
  2284.          FHelpWindow:HWindow;
  2285.          FHintTimer:TTimer;
  2286.          FHintControl:TControl;
  2287.          FHintParent:TControl;
  2288.          FHintOwner:TControl;
  2289.          FHint:STRING;
  2290.          FShowHint:BOOLEAN;
  2291.          FHintPause:LONGINT;
  2292.          FHintPenColor:TColor;
  2293.          FHintColor:TColor;
  2294.          FHintPS:LONGWORD;
  2295.          FHintDC:LONGWORD;
  2296.          FHintRec:TRect;
  2297.          FHintBackGround:LONGWORD;        {BackGround Bitmap}
  2298.          FHintOrigin:THintOrigin;
  2299.          {$IFDEF Win32}
  2300.          FOldBubbleBitmap:LONGWORD;
  2301.          {$ENDIF}
  2302.          FMenuItemList:TList;
  2303.          FFont:TFont;
  2304.          FPlatform:TPlatform;
  2305.          FDBCSSystem:BOOLEAN;
  2306.          FTerminate:BOOLEAN;
  2307.          ExceptObject:Exception;
  2308.          FOnHint:TNotifyEvent;
  2309.          FOnIdle:TIdleEvent;
  2310.          FOnMessage:TMessageEvent;
  2311.          FOnGetHintExtent:TGetHintExtentEvent;
  2312.          FOnDrawBubble:TDrawHintEvent;
  2313.          FOnException:TExceptionEvent;
  2314.          FOnHelp:THelpEvent;
  2315.          FOnShowHint:TShowHintEvent;
  2316.       PRIVATE
  2317.          FUNCTION GetHelpFile:STRING;
  2318.          PROCEDURE SetHelpFile(NewName:STRING);
  2319.          FUNCTION GetHelpWindowTitle:STRING;
  2320.          PROCEDURE SetHelpWindowTitle(NewTitle:STRING);
  2321.          PROCEDURE SetHint(CONST NewText:STRING);
  2322.          PROCEDURE HintTimerExpired;
  2323.          PROCEDURE DestroyHintWindow;
  2324.          FUNCTION NewMenuItem(Entry:TMenuItem):TCommand;
  2325.          PROCEDURE DeleteMenuItem(Entry:TMenuItem);
  2326.          FUNCTION GetMenuItem(Command:TCommand):TMenuItem;
  2327.          PROCEDURE SetFont(NewFont:TFont);
  2328.          FUNCTION ProcessMessage:BOOLEAN;
  2329.          PROCEDURE Idle;
  2330.          FUNCTION GetIcon:TGraphic;
  2331.          PROCEDURE SetIcon(NewIcon:TGraphic);
  2332.       PROTECTED
  2333.          PROCEDURE SetupComponent;OVERRIDE;
  2334.       PUBLIC
  2335.          CONSTRUCTOR Create;VIRTUAL;
  2336.          DESTRUCTOR Destroy;OVERRIDE;
  2337.          PROCEDURE CreateForm(InstanceClass:TFormClass;VAR Reference:TForm);
  2338.          PROCEDURE Run;
  2339.          PROCEDURE RunFailed;VIRTUAL;
  2340.          PROCEDURE ProcessMessages;
  2341.          PROCEDURE HandleMessage;
  2342.          PROCEDURE Terminate;
  2343.          PROCEDURE HandleException(Sender:TObject);
  2344.          PROCEDURE ShowException(E:Exception);
  2345.          PROCEDURE HelpIndex;
  2346.          PROCEDURE HelpOnHelp;
  2347.          PROCEDURE HelpContents;
  2348.          PROCEDURE KeysHelp;
  2349.          FUNCTION HelpJump(CONST JumpId:STRING):BOOLEAN;
  2350.          FUNCTION HelpContext(Context:THelpContext):BOOLEAN;
  2351.          FUNCTION Help(Context:THelpContext):BOOLEAN;VIRTUAL;
  2352.       PUBLIC
  2353.          PROPERTY MainForm:TForm read FMainForm;
  2354.          PROPERTY HelpFile:STRING read GetHelpFile write SetHelpFile;
  2355.          PROPERTY HelpWindowTitle:STRING read GetHelpWindowTitle write SetHelpWindowTitle;
  2356.          PROPERTY HelpWindow:HWindow read FHelpWindow;
  2357.          PROPERTY Platform:TPlatform read FPlatform;
  2358.          PROPERTY DBCSSystem:BOOLEAN read FDBCSSystem;
  2359.          PROPERTY Terminated:BOOLEAN read FTerminate;
  2360.  
  2361.          PROPERTY Hint:STRING read FHint write SetHint;
  2362.          PROPERTY ShowHint:BOOLEAN read FShowHint write FShowHint;
  2363.          PROPERTY ShowMainForm:BOOLEAN read FShowMainForm write FShowMainForm;
  2364.          PROPERTY HintPause:LONGINT read FHintPause write FHintPause;
  2365.          PROPERTY HintPenColor:TColor read FHintPenColor write FHintPenColor;
  2366.          PROPERTY HintColor:TColor read FHintColor write FHintColor;
  2367.          PROPERTY HintOrigin:THintOrigin read FHintOrigin write FHintOrigin;
  2368.          PROPERTY Font:TFont read FFont write SetFont;
  2369.          PROPERTY Icon:TGraphic read GetIcon write SetIcon;
  2370.          PROPERTY OnHint:TNotifyEvent read FOnHint write FOnHint;
  2371.          PROPERTY OnIdle:TIdleEvent read FOnIdle write FOnIdle;
  2372.          PROPERTY OnMessage:TMessageEvent read FOnMessage write FOnMessage;
  2373.          PROPERTY OnGetHintExtent:TGetHintExtentEvent read FOnGetHintExtent write FOnGetHintExtent;
  2374.          PROPERTY OnDrawBubble:TDrawHintEvent read FOnDrawBubble write FOnDrawBubble;
  2375.          PROPERTY OnException:TExceptionEvent read FOnException write FOnException;
  2376.          PROPERTY OnHelp:THelpEvent read FOnHelp write FOnHelp;
  2377.          PROPERTY OnShowHint:TShowHintEvent read FOnShowHint write FOnShowHint;
  2378.     END;
  2379.  
  2380.  
  2381.     //DDE Handling
  2382.     //
  2383.     //there are two types of commands a DDE Server can provide: Macros and
  2384.     //Topics.
  2385.     //
  2386.     //Macros are command strings that don't receive or return data, they simply
  2387.     //perform actions at the server side. On client side a macro can be
  2388.     //invoked using the ExecuteMacro or ExecuteMacroLines methods. On server side the
  2389.     //OnExecuteMacro handler is invoked if a macro comes in, that is valid
  2390.     //for that server. A DDEServerItem can be used without a DDEServerConv if no macros are to be
  2391.     //received. Note that DDE servers are form local and should be
  2392.     //inserted into a desktop form. Otherwise the DDE server might not receive messages.
  2393.     //The default topic of a conversation is the TDdeServerConv Name property if a
  2394.     //server exists (Property ServerConv of the TDdeServerItem), otherwise it is the
  2395.     //caption of the form containing the TDdeServerItem component. If you assign the
  2396.     //DdeTopic property with a value <> '' then the topic of the conversation is changed
  2397.     //to that value
  2398.     //
  2399.     //Items are defined using the TDdeServerItem's DdeItem property. By default the Item
  2400.     //is a empty string, that means the item is the same as the topic of the
  2401.     //conversation. In this case the first item that has the server with the specified
  2402.     //topic as ServerConv is used for the conversation. Items receive and return data
  2403.     //with the Text property. To receive or post multiple lines use the Lines property.
  2404.     //DDE conversations are established by either calling the OpenLink and CloseLink
  2405.     //methods (mode ddeManual) or automatically when the component is created
  2406.     //(mode ddeAutomatic). Items can be send bei either using PokeData or
  2407.     //PokeDataLines. Data can be transfered from the server by calling RequestData.
  2408.     //A DdeClientItem cannot be used without a DDEClientConv component assigned.
  2409.     //
  2410.     //To determine which topics and macros are valid, consult the documentation of the DDE server
  2411.     //application.
  2412.  
  2413.  
  2414.     TDdeServerConv=CLASS;
  2415.     TDdeServerItem=CLASS;
  2416.     TDdeClientConv=CLASS;
  2417.     TDdeClientItem=CLASS;
  2418.  
  2419.     {$M+}
  2420.     TDataMode=(ddeAutomatic, ddeManual);
  2421.  
  2422.     TExecuteMacro=PROCEDURE(Sender:TObject;Macro:TStrings;VAR Success:BOOLEAN) OF OBJECT;
  2423.     {$M-}
  2424.  
  2425.     TDdeClientConv=CLASS(TComponent)
  2426.       PRIVATE
  2427.          FDdeService:PSTRING;
  2428.          FDdeTopic:PSTRING;
  2429.          FItems: TList;
  2430.          FConnectMode:TDataMode;
  2431.          FForm:TForm;
  2432.          FConnected:BOOLEAN;
  2433.          FObjectWindow:TControl;
  2434.          FOperationComplete:BOOLEAN;
  2435.          FData:POINTER;
  2436.          FDataLen:LONGINT;
  2437.          FTimeOut:LONGWORD;
  2438.          FOnClose:TNotifyEvent;
  2439.          FOnOpen:TNotifyEvent;
  2440.          FOnTimeOut:TNotifyEvent;
  2441.          FUNCTION GetDdeService:STRING;
  2442.          PROCEDURE SetDdeService(CONST Value:STRING);
  2443.          FUNCTION GetDdeTopic:STRING;
  2444.          PROCEDURE SetDdeTopic(CONST Value:STRING);
  2445.          PROCEDURE SetConnectMode(NewValue:TDataMode);
  2446.          PROCEDURE RemoveItem(Item:TDdeClientItem);
  2447.          PROCEDURE InsertItem(Item:TDdeClientItem);
  2448.          FUNCTION GetItem(Index:LONGINT):TDdeClientItem;
  2449.          FUNCTION GetItemCount:LONGINT;
  2450.          PROCEDURE WaitForServer;
  2451.       PROTECTED
  2452.          PROCEDURE SetupComponent;OVERRIDE;
  2453.          FUNCTION CreateDdeConv(CONST AppName,TopicName:STRING):BOOLEAN;
  2454.       PUBLIC
  2455.          DESTRUCTOR Destroy;OVERRIDE;
  2456.          FUNCTION PasteLink:Boolean;
  2457.          FUNCTION OpenLink:Boolean;
  2458.          FUNCTION SetLink(CONST Service,Topic:STRING):BOOLEAN;
  2459.          PROCEDURE CloseLink;
  2460.          FUNCTION StartAdvise(Item:STRING):BOOLEAN;
  2461.          FUNCTION StopAdvise(Item:STRING):BOOLEAN;
  2462.          FUNCTION PokeDataLines(CONST Item:STRING;Data:TStrings):BOOLEAN;
  2463.          FUNCTION PokeData(CONST Item:STRING;Data:PChar):BOOLEAN;
  2464.          FUNCTION ExecuteMacro(Cmd: PChar;waitFlg:BOOLEAN):BOOLEAN;
  2465.          FUNCTION ExecuteMacroLines(Cmd:TStrings;waitFlg:BOOLEAN):BOOLEAN;
  2466.          FUNCTION RequestData(CONST Item:STRING):PChar;
  2467.          PROPERTY ItemCount:LONGINT read GetItemCount;
  2468.          PROPERTY Items[Index:LONGINT]:TDdeClientItem read GetItem;
  2469.          PROPERTY Form:TForm read FForm;
  2470.          PROPERTY Connected:BOOLEAN read FConnected;
  2471.       PUBLISHED
  2472.          PROPERTY DdeService:STRING read GetDdeService write SetDdeService;
  2473.          PROPERTY DdeTopic:STRING read GetDdeTopic write SetDdeTopic;
  2474.          PROPERTY ConnectMode:TDataMode read FConnectMode write SetConnectMode;
  2475.          PROPERTY TimeOut:LONGWORD read FTimeOut write FTimeOut;
  2476.          PROPERTY OnClose:TNotifyEvent read FOnClose write FOnClose;
  2477.          PROPERTY OnOpen:TNotifyEvent read FOnOpen write FOnOpen;
  2478.          PROPERTY OnTimeOut:TNotifyEvent read FOnTimeOut write FOnTimeOut;
  2479.     END;
  2480.  
  2481.  
  2482.     TDdeClientItem=CLASS(TComponent)
  2483.       PRIVATE
  2484.          FLines: TStrings;
  2485.          FDdeClientItem:^STRING;
  2486.          FForm:TForm;
  2487.          FClientConv:TDdeClientConv;
  2488.          FOnChange: TNotifyEvent;
  2489.          FUNCTION GetText:STRING;
  2490.          FUNCTION GetDdeClientItem:STRING;
  2491.          PROCEDURE SetDdeClientItem(CONST NewValue:STRING);
  2492.          PROCEDURE SetDdeClientConv(SConv:TDdeClientConv);
  2493.          PROCEDURE SetText(CONST Item:STRING);
  2494.          PROCEDURE SetLines(Value:TStrings);
  2495.          PROCEDURE ValueChanged;
  2496.          PROCEDURE OnAdvise(Text:PChar);
  2497.       PROTECTED
  2498.          PROCEDURE SetupComponent;OVERRIDE;
  2499.          PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
  2500.       PUBLIC
  2501.          DESTRUCTOR Destroy;OVERRIDE;
  2502.          FUNCTION Advise:BOOLEAN;
  2503.          FUNCTION Unadvise:BOOLEAN;
  2504.          FUNCTION Request:BOOLEAN;
  2505.          FUNCTION Poke:BOOLEAN;
  2506.          PROPERTY Form:TForm read FForm;
  2507.       PUBLISHED
  2508.          PROPERTY Text:STRING read GetText write SetText;
  2509.          PROPERTY Lines: TStrings read FLines write SetLines;
  2510.          PROPERTY DdeConv: TDdeClientConv read FClientConv write SetDdeClientConv;
  2511.          PROPERTY DdeItem:STRING read GetDdeClientItem write SetDdeClientItem;
  2512.          PROPERTY OnChange: TNotifyEvent read FOnChange write FOnChange;
  2513.     END;
  2514.  
  2515.  
  2516.     TDdeServerConv=CLASS(TComponent)
  2517.       PRIVATE
  2518.          FItems:TList;
  2519.          FForm:TForm;
  2520.          FOnExecuteMacro:TExecuteMacro;
  2521.          FOnOpen:TNotifyEvent;
  2522.          FOnClose:TNotifyEvent;
  2523.          FDdeTopic:PSTRING;
  2524.          PROCEDURE InsertItem(Item:TDdeServerItem);
  2525.          PROCEDURE RemoveItem(Item:TDdeServerItem);
  2526.          FUNCTION GetItemCount:LONGINT;
  2527.          FUNCTION GetItem(Index:LONGINT):TDdeServerItem;
  2528.          FUNCTION GetDdeTopic:STRING;
  2529.          PROCEDURE SetDdeTopic(NewValue:STRING);
  2530.       PROTECTED
  2531.          PROCEDURE SetupComponent;OVERRIDE;
  2532.       PUBLIC
  2533.          DESTRUCTOR Destroy;OVERRIDE;
  2534.          PROCEDURE ExecuteMacro(Macro:TStrings;VAR Success:BOOLEAN);VIRTUAL;
  2535.          PROCEDURE Connect;VIRTUAL;
  2536.          PROCEDURE Disconnect;VIRTUAL;
  2537.          PROPERTY ItemCount:LONGINT read GetItemCount;
  2538.          PROPERTY Items[Index:LONGINT]:TDdeServerItem read GetItem;
  2539.          PROPERTY Form:TForm read FForm;
  2540.       PUBLISHED
  2541.          PROPERTY OnExecuteMacro:TExecuteMacro read FOnExecuteMacro write FOnExecuteMacro;
  2542.          PROPERTY OnOpen:TNotifyEvent read FOnOpen write FOnOpen;
  2543.          PROPERTY OnClose:TNotifyEvent read FOnClose write FOnClose;
  2544.          PROPERTY DdeTopic:STRING read GetDdeTopic write SetDdeTopic;
  2545.     END;
  2546.  
  2547.  
  2548.     TDdeServerItem=CLASS(TComponent)
  2549.       PRIVATE
  2550.          FLines:TStrings;
  2551.          FItem:^STRING;
  2552.          FForm:TForm;
  2553.          FServerConv:TDdeServerConv;
  2554.          FAdviseMode:LONGINT;
  2555.          FAdviseModeSend:BOOLEAN;
  2556.          FOnChange:TNotifyEvent;
  2557.          FOnPokeData:TNotifyEvent;
  2558.          PROCEDURE ValueChanged;
  2559.          FUNCTION GetItem:STRING;
  2560.          PROCEDURE SetItem(NewValue:STRING);
  2561.          FUNCTION GetText:STRING;
  2562.          PROCEDURE SetText(CONST Item:STRING);
  2563.          PROCEDURE SetLines(Value:TStrings);
  2564.          PROCEDURE SetServerConv(SConv:TDdeServerConv);
  2565.       PROTECTED
  2566.          PROCEDURE SetupComponent;OVERRIDE;
  2567.          PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
  2568.       PUBLIC
  2569.          DESTRUCTOR Destroy;OVERRIDE;
  2570.          //FUNCTION PokeData(Data: HDdeData): LongInt;
  2571.          //PROCEDURE CopyToClipboard;
  2572.          PROCEDURE Change;VIRTUAL;
  2573.          PROPERTY Form:TForm read FForm;
  2574.       PUBLISHED
  2575.          PROPERTY ServerConv:TDdeServerConv read FServerConv write SetServerConv;
  2576.          PROPERTY DdeItem:STRING read GetItem write SetItem;
  2577.          PROPERTY Text:STRING read GetText write SetText;
  2578.          PROPERTY Lines:TStrings read FLines write SetLines;
  2579.          PROPERTY OnChange:TNotifyEvent read FOnChange write FOnChange;
  2580.          PROPERTY OnPokeData:TNotifyEvent read FOnPokeData write FOnPokeData;
  2581.     END;
  2582.  
  2583.  
  2584.     TDdeMgr=CLASS(TComponent)
  2585.       PRIVATE
  2586.          FAppName:PSTRING;
  2587.          FClientConvs:TList;
  2588.          FServerConvs:TList;
  2589.          FServerItems:TList;
  2590.          OWindows:TList;
  2591.          FClients:TList;
  2592.          PROCEDURE PostDataChange(CONST Topic,Item:STRING);
  2593.          PROCEDURE SetAppName(CONST Name:STRING);
  2594.          FUNCTION GetAppName:STRING;
  2595.          PROCEDURE ResetAppName;
  2596.          FUNCTION GetServerItem(CONST Topic:STRING;Form:TForm;
  2597.                                 VAR Conv:TDdeServerConv):TDdeServerItem;
  2598.          FUNCTION HasDDEServers(Form:TForm):BOOLEAN;
  2599.          PROCEDURE InsertServerConv(SConv: TDdeServerConv);
  2600.          PROCEDURE RemoveServerConv(SConv: TDdeServerConv);
  2601.          PROCEDURE InsertServerItem(Item:TDdeServerItem);
  2602.          PROCEDURE RemoveServerItem(Item:TDdeServerItem);
  2603.          PROCEDURE GetTopics(Topics:TStrings;Form:TForm);
  2604.          PROCEDURE AddObjectWindow(OWindow:TControl);
  2605.          PROCEDURE RemoveObjectWindow(OWindow:TControl);
  2606.          FUNCTION GetActiveDdeConnections:LONGINT;
  2607.          PROCEDURE AddClient(Client:TDdeClientConv);
  2608.          PROCEDURE RemoveClient(Client:TDdeClientConv);
  2609.          PROCEDURE OpenClientLinks(Form:TForm);
  2610.          PROCEDURE CloseClientLinks(Form:TForm);
  2611.          PROCEDURE CloseAllLinks;
  2612.       PROTECTED
  2613.          PROCEDURE SetupComponent;OVERRIDE;
  2614.       PUBLIC
  2615.          DESTRUCTOR Destroy;OVERRIDE;
  2616.          FUNCTION GetExeName:STRING;
  2617.          //PROPERTY DdeInstId:LongInt read FDdeInstId write FDdeInstId;
  2618.          PROPERTY AppName:STRING read GetAppName write SetAppName;
  2619.          //PROPERTY LinkClipFmt:Word read FLinkClipFmt;
  2620.          PROPERTY ActiveDdeConnections:LONGINT read GetActiveDdeConnections;
  2621.     END;
  2622.  
  2623. VAR
  2624.   DDEMgr: TDdeMgr;
  2625.  
  2626.  
  2627. TYPE
  2628.     TCompLibData=RECORD
  2629.          NewHeapOrg,NewHeapEnd,NewHeapPtr:POINTER;
  2630.          NewHeapSize:LONGWORD;
  2631.          NewLastHeapPage,NewLastHeapPageAdr:POINTER;
  2632.          NewHeapMutex:LONGWORD;
  2633.          Screen:TScreen;
  2634.          Application:TApplication;
  2635.          ClipBoard:TClipBoard;
  2636.          ToolsAPI:TObject;
  2637.          ToolsAPIRequired:BOOLEAN;
  2638.          NullStr:PString;
  2639.     END;
  2640.  
  2641.  
  2642. FUNCTION Point(X,Y:LONGINT):TPoint;
  2643. FUNCTION Rect(left,bottom,right,top:LONGINT):TRect;
  2644. FUNCTION PointInRect(pt:TPoint; rec:TRect):BOOLEAN;
  2645. FUNCTION RectInRect(CONST childrec,parentrec:TRect):BOOLEAN;
  2646. PROCEDURE InflateRect(VAR rec:TRect; x,y:LONGINT);
  2647. PROCEDURE OffsetRect(VAR rec:TRect; x,y:LONGINT);
  2648. FUNCTION IntersectRect(CONST rec1,rec2:TRect):TRect;
  2649. FUNCTION UnionRect(CONST rec1,rec2:TRect):TRect;
  2650. FUNCTION IsRectEmpty(CONST rec:TRect):BOOLEAN;
  2651.  
  2652. FUNCTION SendMsg(ahwnd:HWindow;Msg:ULONG;mp1,mp2:LONG):LONG;
  2653. FUNCTION PostMsg(ahwnd:HWindow;Msg:ULONG;mp1,mp2:LONG):BOOL;
  2654. FUNCTION HandleToControl(ahwnd:HWindow):TControl;
  2655. FUNCTION OppositeRGB(Color:TColor):TColor;
  2656. FUNCTION ValuesToRGB(Red,Green,Blue:BYTE):TColor;
  2657. FUNCTION RGBToValues(Color:TColor;VAR Red,Green,Blue:BYTE):TColor;
  2658. FUNCTION SysColorToRGB(Color:TColor):TColor;
  2659. FUNCTION WinColorToRGB(Color:TColor):TColor;
  2660. FUNCTION RGBToWinColor(Color:TColor):TColor;
  2661. FUNCTION GetShortHint(CONST Hint:STRING):STRING;
  2662. FUNCTION GetLongHint(CONST Hint:STRING):STRING;
  2663. FUNCTION IsControlLocked(Control:TControl):BOOLEAN;
  2664. FUNCTION GetParentForm(Control:TControl):TForm;
  2665.  
  2666. FUNCTION ReadSCUFont(VAR Data;DataLen:LONGINT):TFont;
  2667.  
  2668. PROCEDURE DrawSystemBorder(Control:TControl;VAR rec:TRect;Style:TBorderStyle);
  2669. PROCEDURE DrawSystemFrame(Control:TControl;VAR rec:TRect;LightColor,DarkColor:TColor);
  2670.  
  2671.  
  2672. PROCEDURE TransformPointToOS2(VAR pt:TPoint;Control:TControl;Graphic:TGraphic);
  2673. PROCEDURE TransformRectToOS2(VAR rec:TRect;Control:TControl;Graphic:TGraphic);
  2674. PROCEDURE TransformPointToWin32(VAR pt:TPoint;Control:TControl;Graphic:TGraphic);
  2675. PROCEDURE TransformRectToWin32(VAR rec:TRect;Control:TControl;Graphic:TGraphic);
  2676. PROCEDURE TransformClientPoint(VAR pt:TPoint;Control:TControl;Graphic:TGraphic);
  2677. PROCEDURE TransformClientRect(VAR rec:TRect;Control:TControl;Graphic:TGraphic);
  2678. PROCEDURE MapDialogPoints(SourceWindow:HWindow;VAR ptl:TPoint);
  2679. PROCEDURE RectToWin32Rect(VAR rec:TRect);
  2680. PROCEDURE Win32RectToRect(VAR rec:TRect);
  2681.  
  2682.  
  2683. FUNCTION IsDBCSFirstByte(ch:CHAR):BOOLEAN;
  2684.  
  2685. VAR
  2686.    Screen:TScreen;
  2687.    Clipboard:TClipboard;
  2688.    Application:TApplication;
  2689.  
  2690.  
  2691. CONST
  2692.    RegisterToolsAPIProc:PROCEDURE(ToolServ:TObject)=NIL;
  2693.  
  2694. {internal}
  2695. PROCEDURE SetupCompLib(VAR Data:TCompLibData);
  2696. PROCEDURE RegisterAutomaticForm(FormClass:TFormClass;Address:POINTER);
  2697.  
  2698.  
  2699. IMPLEMENTATION
  2700.  
  2701.  
  2702.