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

  1. {╔══════════════════════════════════════════════════════════════════════════╗
  2.  ║                                                                          ║
  3.  ║     Sibyl Portable Component Classes                                     ║
  4.  ║                                                                          ║
  5.  ║     Copyright (c) 1995,97 SpeedSoft Germany,   All rights reserved.      ║
  6.  ║                                                                          ║
  7.  ╚══════════════════════════════════════════════════════════════════════════╝}
  8.  
  9. UNIT StdCtrls;
  10.  
  11.  
  12. INTERFACE
  13.  
  14. {$IFDEF OS2}
  15. USES Os2Def,BseDos,PmWin,PmGpi,PmDev,PmStdDlg;
  16. {$ENDIF}
  17.  
  18. {$IFDEF Win95}
  19. USES WinDef,WinBase,WinNT,WinUser,WinGDI,CommCtrl;
  20. {$ENDIF}
  21.  
  22. USES Dos,SysUtils,Classes,Forms,Graphics,Buttons;
  23.  
  24.  
  25. TYPE
  26.     TGroupBox=CLASS(TControl)
  27.       PRIVATE
  28.          FOnClick:TNotifyEvent;
  29.          PROCEDURE CMTextChanged(VAR Msg:TMessage);message CM_TEXTCHANGED;
  30.       PROTECTED
  31.          PROCEDURE SetupComponent;OVERRIDE;
  32.          PROCEDURE MouseClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  33.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  34.          FUNCTION EvaluateShortCut(KeyCode:TKeyCode):BOOLEAN;OVERRIDE;
  35.       PUBLIC
  36.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  37.          PROPERTY XAlign;
  38.          PROPERTY XStretch;
  39.          PROPERTY YAlign;
  40.          PROPERTY YStretch;
  41.       PUBLISHED
  42.          PROPERTY Align;
  43.          PROPERTY Color;
  44.          PROPERTY Caption;
  45.          PROPERTY PenColor;
  46.          PROPERTY DragCursor;
  47.          PROPERTY DragMode;
  48.          PROPERTY Enabled;
  49.          PROPERTY Font;
  50.          PROPERTY ParentColor;
  51.          PROPERTY ParentPenColor;
  52.          PROPERTY ParentFont;
  53.          PROPERTY ParentShowHint;
  54.          PROPERTY PopupMenu;
  55.          PROPERTY ShowHint;
  56.          PROPERTY TabOrder;
  57.          PROPERTY TabStop;
  58.          PROPERTY Visible;
  59.          PROPERTY ZOrder;
  60.  
  61.          PROPERTY OnCanDrag;
  62.          PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
  63.          PROPERTY OnCommand;
  64.          PROPERTY OnDblClick;
  65.          PROPERTY OnDragDrop;
  66.          PROPERTY OnDragOver;
  67.          PROPERTY OnEndDrag;
  68.          PROPERTY OnEnter;
  69.          PROPERTY OnExit;
  70.          PROPERTY OnFontChange;
  71.          PROPERTY OnMouseClick;
  72.          PROPERTY OnMouseDblClick;
  73.          PROPERTY OnMouseDown;
  74.          PROPERTY OnMouseMove;
  75.          PROPERTY OnMouseUp;
  76.          PROPERTY OnResize;
  77.          PROPERTY OnSetupShow;
  78.          PROPERTY OnStartDrag;
  79.     END;
  80.  
  81.  
  82.     TLabel=CLASS(TControl)
  83.       PRIVATE
  84.          RemoveAccel:BOOLEAN;
  85.          FAutoSize:BOOLEAN;
  86.          FAlignment:TAlignment;
  87.          FWordWrap:BOOLEAN;
  88.          FRows:INTEGER;
  89.          FFocusControl:TControl;
  90.          FShowAccelChar:BOOLEAN;
  91.          FOnClick:TNotifyEvent;
  92.          PROCEDURE CMTextChanged(VAR Msg:TMessage);message CM_TEXTCHANGED;
  93.          PROCEDURE SetAutoSize(Value:BOOLEAN);
  94.          PROCEDURE SetAlignment(Value:TAlignment);
  95.          PROCEDURE SetWordWrap(Value:BOOLEAN);
  96.          PROCEDURE SetAccelChar(Value:BOOLEAN);
  97.          PROCEDURE SetFocusControl(Value:TControl);
  98.          FUNCTION GetRows:INTEGER;
  99.          PROCEDURE DoDrawLine(CONST s:STRING; VAR row:INTEGER);
  100.       PROTECTED
  101.          PROCEDURE SetupComponent;OVERRIDE;
  102.          PROCEDURE SetupShow;OVERRIDE;
  103.          PROCEDURE MouseClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  104.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  105.          PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
  106.          FUNCTION EvaluateShortCut(KeyCode:TKeyCode):BOOLEAN;OVERRIDE;
  107.       PUBLIC
  108.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  109.          PROPERTY Rows:INTEGER read GetRows;
  110.          PROPERTY XAlign;
  111.          PROPERTY XStretch;
  112.          PROPERTY YAlign;
  113.          PROPERTY YStretch;
  114.       PUBLISHED
  115.          PROPERTY Align;
  116.          PROPERTY Alignment:TAlignment read FAlignment write SetAlignment;
  117.          PROPERTY AutoSize:BOOLEAN read FAutoSize write SetAutoSize;
  118.          PROPERTY Color;
  119.          PROPERTY Caption;
  120.          PROPERTY PenColor;
  121.          PROPERTY DragCursor;
  122.          PROPERTY DragMode;
  123.          PROPERTY Enabled;
  124.          PROPERTY FocusControl:TControl read FFocusControl write SetFocusControl;
  125.          PROPERTY Font;
  126.          PROPERTY ParentColor;
  127.          PROPERTY ParentPenColor;
  128.          PROPERTY ParentFont;
  129.          PROPERTY ParentShowHint;
  130.          PROPERTY PopupMenu;
  131.          PROPERTY ShowAccelChar:BOOLEAN read FShowAccelChar write SetAccelChar;
  132.          PROPERTY ShowHint;
  133.          PROPERTY Visible;
  134.          PROPERTY WordWrap:BOOLEAN read FWordWrap write SetWordWrap;
  135.          PROPERTY ZOrder;
  136.  
  137.          PROPERTY OnCanDrag;
  138.          PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
  139.          PROPERTY OnCommand;
  140.          PROPERTY OnDblClick;
  141.          PROPERTY OnDragDrop;
  142.          PROPERTY OnDragOver;
  143.          PROPERTY OnEndDrag;
  144.          PROPERTY OnEnter;
  145.          PROPERTY OnExit;
  146.          PROPERTY OnFontChange;
  147.          PROPERTY OnMouseClick;
  148.          PROPERTY OnMouseDblClick;
  149.          PROPERTY OnMouseDown;
  150.          PROPERTY OnMouseMove;
  151.          PROPERTY OnMouseUp;
  152.          PROPERTY OnResize;
  153.          PROPERTY OnSetupShow;
  154.          PROPERTY OnStartDrag;
  155.     END;
  156.  
  157.  
  158.     EMemoIndexError=CLASS(Exception);
  159.  
  160.     TMemo=CLASS(TControl)
  161.       PRIVATE
  162.          FLines:TStrings;
  163.          FInitLines:TStringList;
  164.          FScrollBars:TScrollStyle;
  165.          FBorderStyle:TBorderStyle;
  166.          FWordWrap:BOOLEAN;
  167.          FReadOnly:BOOLEAN;
  168.          FWantTabs:BOOLEAN;
  169.          FModified:BOOLEAN;
  170.          FOnChange:TNotifyEvent;
  171.          FUNCTION GetLines:TStrings;
  172.          PROCEDURE SetLines(AStrings:TStrings);
  173.          PROCEDURE SetScrollBars(NewValue:TScrollStyle);
  174.          PROCEDURE SetBorderStyle(NewBorder:TBorderStyle);
  175.          PROCEDURE SetWordWrap(Value:BOOLEAN);
  176.          PROCEDURE SetReadOnly(Value:BOOLEAN);
  177.          PROCEDURE SetWantTabs(Value:BOOLEAN);
  178.          {$IFDEF Win95}
  179.          PROCEDURE WMGetDlgCode(VAR Msg:TMessage); message WM_GETDLGCODE;
  180.          {$ENDIF}
  181.       PROTECTED
  182.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  183.          PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
  184.          PROCEDURE SetupComponent;OVERRIDE;
  185.          PROCEDURE SetupShow;OVERRIDE;
  186.          PROCEDURE DestroyWnd;OVERRIDE;
  187.          PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
  188.          PROCEDURE CharEvent(VAR Key:CHAR;RepeatCount:BYTE);OVERRIDE;
  189.          PROCEDURE ScanEvent(VAR KeyCode:TKeyCode;RepeatCount:BYTE);OVERRIDE;
  190.          PROCEDURE Resize;OVERRIDE;
  191.          PROCEDURE Changed;VIRTUAL;
  192.       PUBLIC
  193.          DESTRUCTOR Destroy;OVERRIDE;
  194.          PROCEDURE Clear;
  195.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  196.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  197.          PROPERTY Modified:BOOLEAN read FModified write FModified;
  198.          PROPERTY XAlign;
  199.          PROPERTY XStretch;
  200.          PROPERTY YAlign;
  201.          PROPERTY YStretch;
  202.       PUBLISHED
  203.          PROPERTY Align;
  204.          PROPERTY Color;
  205.          PROPERTY BorderStyle:TBorderStyle read FBorderStyle write SetBorderStyle;
  206.          PROPERTY PenColor;
  207.          PROPERTY DragCursor;
  208.          PROPERTY DragMode;
  209.          PROPERTY Enabled;
  210.          PROPERTY Font;
  211.          PROPERTY Lines:TStrings read GetLines write SetLines;
  212.          PROPERTY ParentColor;
  213.          PROPERTY ParentPenColor;
  214.          PROPERTY ParentFont;
  215.          PROPERTY ParentShowHint;
  216.          PROPERTY PopupMenu;
  217.          PROPERTY ReadOnly:BOOLEAN read FReadOnly write SetReadOnly;
  218.          PROPERTY ScrollBars:TScrollStyle read FScrollBars write SetScrollBars;
  219.          PROPERTY ShowHint;
  220.          PROPERTY TabOrder;
  221.          PROPERTY TabStop;
  222.          PROPERTY Visible;
  223.          PROPERTY WantTabs:BOOLEAN read FWantTabs write SetWantTabs;
  224.          PROPERTY WordWrap:BOOLEAN read FWordWrap write SetWordWrap;
  225.          PROPERTY ZOrder;
  226.  
  227.          PROPERTY OnCanDrag;
  228.          PROPERTY OnChange:TNotifyEvent read FOnChange write FOnChange;
  229.          PROPERTY OnDblClick;
  230.          PROPERTY OnDragDrop;
  231.          PROPERTY OnDragOver;
  232.          PROPERTY OnEndDrag;
  233.          PROPERTY OnEnter;
  234.          PROPERTY OnExit;
  235.          PROPERTY OnFontChange;
  236.          PROPERTY OnKeyPress;
  237.          PROPERTY OnMouseClick;
  238.          PROPERTY OnMouseDblClick;
  239.          PROPERTY OnMouseDown;
  240.          PROPERTY OnMouseMove;
  241.          PROPERTY OnMouseUp;
  242.          PROPERTY OnScan;
  243.          PROPERTY OnSetupShow;
  244.          PROPERTY OnStartDrag;
  245.     END;
  246.  
  247.  
  248.     {$M+}
  249.     TEditCharCase = (ecNormal,ecUpperCase,ecLowerCase);
  250.     {$M-}
  251.  
  252.     TEdit=CLASS(TControl)
  253.       PRIVATE
  254.          FMaxLength:LONGINT;
  255.          FAlignment:TAlignment;
  256.          FUnreadable:BOOLEAN;
  257.          FModified:BOOLEAN;
  258.          FAutoSize:BOOLEAN;
  259.          FAutoScroll:BOOLEAN;
  260.          FAutoSelect:BOOLEAN;
  261.          FExtension:PSTRING;
  262.          FBorderStyle:TBorderStyle;
  263.          FInsertMode:BOOLEAN;
  264.          FReadOnly:BOOLEAN;
  265.          FCharCase:TEditCharCase;
  266.          FSelStart:LONGINT;
  267.          FSelLen:LONGINT;
  268.          FTempCaption:PSTRING;
  269.          FNumbersOnly:BOOLEAN;
  270.          FOnChange:TNotifyEvent;
  271.          PROCEDURE SetMaxLength(Value:LONGINT);
  272.          PROCEDURE SetUnreadable(Value:BOOLEAN);
  273.          PROCEDURE SetBorderStyle(Value:TBorderStyle);
  274.          PROCEDURE SetAutoSize(Value:BOOLEAN);
  275.          PROCEDURE SetAlignment(Value:TAlignment);
  276.          PROCEDURE SetAutoScroll(Value:BOOLEAN);
  277.          PROCEDURE SetSelStart(x:LONGINT);
  278.          FUNCTION GetSelStart:LONGINT;
  279.          PROCEDURE SetSelLength(x:LONGINT);
  280.          FUNCTION GetSelLength:LONGINT;
  281.          FUNCTION GetSelText:STRING;
  282.          PROCEDURE SetSelText(CONST Value:STRING);
  283.          PROCEDURE SetExtension(CONST Value:STRING);
  284.          FUNCTION GetExtension:STRING;
  285.          PROCEDURE SetReadOnly(Value:BOOLEAN);
  286.          PROCEDURE SetInsertMode(Value:BOOLEAN);
  287.          PROCEDURE SetCharCase(Value:TEditCharCase);
  288.          PROCEDURE AdjustHeight;VIRTUAL;
  289.          PROCEDURE SetSelection(Start,Len:LONGINT);
  290.       PROTECTED
  291.          PROCEDURE SetupComponent;OVERRIDE;
  292.          PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
  293.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  294.          PROCEDURE UpdateWindowPos(NewLeft,NewBottom,NewWidth,NewHeight:LONGINT);OVERRIDE;
  295.          PROCEDURE CreateWnd;OVERRIDE;
  296.          PROCEDURE SetupShow;OVERRIDE;
  297.          PROCEDURE DestroyWnd;OVERRIDE;
  298.          PROCEDURE CharEvent(VAR Key:CHAR;RepeatCount:BYTE);OVERRIDE;
  299.          PROCEDURE ScanEvent(VAR KeyCode:TKeyCode;RepeatCount:BYTE);OVERRIDE;
  300.          PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
  301.          PROCEDURE FontChange;OVERRIDE;
  302.          PROCEDURE Change;VIRTUAL;
  303.       PUBLIC
  304.          DESTRUCTOR Destroy;OVERRIDE;
  305.          PROCEDURE SelectAll;
  306.          PROCEDURE Clear;
  307.          PROCEDURE ClearSelection;
  308.          PROCEDURE DeleteSelection;
  309.          PROCEDURE CutToClipBoard;
  310.          PROCEDURE CopyToClipBoard;
  311.          PROCEDURE PasteFromClipBoard;
  312.          PROPERTY Modified:BOOLEAN read FModified write FModified;
  313.          PROPERTY SelStart:LONGINT read GetSelStart write SetSelStart;
  314.          PROPERTY SelLength:LONGINT read GetSelLength write SetSelLength;
  315.          PROPERTY SelText:STRING read GetSelText write SetSelText;
  316.          PROPERTY XAlign;
  317.          PROPERTY XStretch;
  318.          PROPERTY YAlign;
  319.          PROPERTY YStretch;
  320.       PUBLISHED
  321.          PROPERTY Align;
  322.          PROPERTY Alignment:TAlignment read FAlignment write SetAlignment;
  323.          PROPERTY AutoScroll:BOOLEAN read FAutoScroll write SetAutoScroll;
  324.          PROPERTY AutoSelect:BOOLEAN read FAutoSelect write FAutoSelect;
  325.          PROPERTY AutoSize:BOOLEAN read FAutoSize write SetAutoSize;
  326.          PROPERTY Color;
  327.          PROPERTY BorderStyle:TBorderStyle read FBorderStyle write SetBorderStyle;
  328.          PROPERTY CharCase:TEditCharCase read FCharCase write SetCharCase;
  329.          PROPERTY PenColor;
  330.          PROPERTY DragCursor;
  331.          PROPERTY DragMode;
  332.          PROPERTY Enabled;
  333.          PROPERTY Font;
  334.          PROPERTY InsertMode:BOOLEAN read FInsertMode write SetInsertMode;
  335.          PROPERTY MaxLength:LONGINT read FMaxLength write SetMaxLength;
  336.          PROPERTY NumbersOnly:BOOLEAN read FNumbersOnly write FNumbersOnly;
  337.          PROPERTY ParentColor;
  338.          PROPERTY ParentPenColor;
  339.          PROPERTY ParentFont;
  340.          PROPERTY ParentShowHint;
  341.          PROPERTY PopupMenu;
  342.          PROPERTY ReadOnly:BOOLEAN read FReadOnly write SetReadOnly;
  343.          PROPERTY ShowHint;
  344.          PROPERTY TabOrder;
  345.          PROPERTY TabStop;
  346.          PROPERTY Text;
  347.          PROPERTY TextExtension:STRING read GetExtension write SetExtension;
  348.          PROPERTY Unreadable:BOOLEAN read FUnreadable write SetUnreadable;
  349.          PROPERTY Visible;
  350.          PROPERTY ZOrder;
  351.  
  352.          PROPERTY OnCanDrag;
  353.          PROPERTY OnChange:TNotifyEvent read FOnChange write FOnChange;
  354.          PROPERTY OnDblClick;
  355.          PROPERTY OnDragDrop;
  356.          PROPERTY OnDragOver;
  357.          PROPERTY OnEndDrag;
  358.          PROPERTY OnEnter;
  359.          PROPERTY OnExit;
  360.          PROPERTY OnFontChange;
  361.          PROPERTY OnKeyPress;
  362.          PROPERTY OnMouseClick;
  363.          PROPERTY OnMouseDblClick;
  364.          PROPERTY OnMouseDown;
  365.          PROPERTY OnMouseMove;
  366.          PROPERTY OnMouseUp;
  367.          PROPERTY OnResize;
  368.          PROPERTY OnScan;
  369.          PROPERTY OnSetupShow;
  370.          PROPERTY OnStartDrag;
  371.     END;
  372.  
  373.  
  374.     TComboBox=CLASS;
  375.  
  376.     EListBoxIndexError=CLASS(Exception);
  377.  
  378.     {$M+}
  379.     TListBoxStyle=(lbStandard,lbOwnerDrawFixed);
  380.  
  381.     TOwnerDrawState=SET OF (odSelected{,odGrayed,odDisabled,odChecked,odFocused});
  382.  
  383.     TItemFocusEvent=PROCEDURE(Sender:TObject;Index:LONGINT) OF OBJECT;
  384.     TItemSelectEvent=PROCEDURE(Sender:TObject;Index:LONGINT) OF OBJECT;
  385.     TListBoxMeasureItemEvent=PROCEDURE(Sender:TObject;Index:LONGINT;
  386.          VAR Width,Height:LONGINT) OF OBJECT;
  387.     TListBoxDrawItemEvent=PROCEDURE(Sender:TObject;Index:LONGINT;
  388.          Rec:TRect;State:TOwnerDrawState) OF OBJECT;
  389.     {$M-}
  390.  
  391.  
  392.     TListBox=CLASS(TControl)
  393.       PRIVATE
  394.          FDragging:BOOLEAN;
  395.          FComboEdit:TEdit;
  396.          FComboBox:TComboBox;
  397.          FItems:TStrings;
  398.          FInitItems:TStringList;
  399.          FInitItemIndex:LONGINT;
  400.          FInitTopIndex:LONGINT;
  401.          FStyle:TListBoxStyle;
  402.          FIntegralHeight:BOOLEAN;
  403.          FHorzScroll:BOOLEAN;
  404.          FMultiSelect:BOOLEAN;
  405.          FExtendedSelect:BOOLEAN;
  406.          FSorted:BOOLEAN;
  407.          FItemHeight:LONGINT;
  408.          FDuplicates:BOOLEAN; {only for add}
  409.          FUpdateCount:LONGINT;
  410.          FDragSelected:LONGINT;
  411.          FDragRectValid:BOOLEAN;
  412.          FDragRect:TRect;
  413.          FShowDragRects:BOOLEAN;
  414.          FEnableWindowUpdate:BOOLEAN;
  415.          FSelectListCount:LONGINT;
  416.          FSelectList:POINTER;
  417.          FLastFocusItem:LONGINT;
  418.          FOnItemFocus:TItemFocusEvent;
  419.          FOnItemSelect:TItemSelectEvent;
  420.          FOnMeasureItem:TListBoxMeasureItemEvent;
  421.          FOnDrawItem:TListBoxDrawItemEvent;
  422.          FOnClick:TNotifyEvent;
  423.          PROCEDURE SetIntegralHeight(Value:BOOLEAN);
  424.          PROCEDURE SetHorzScroll(Value:BOOLEAN);
  425.          PROCEDURE SetMultiSelect(Value:BOOLEAN);
  426.          PROCEDURE SetExtendedSelect(Value:BOOLEAN);
  427.          PROCEDURE SetSorted(Value:BOOLEAN);
  428.          PROCEDURE SetStyle(NewStyle:TListBoxStyle);
  429.          FUNCTION GetItems:TStrings;
  430.          PROCEDURE SetItems(AStrings:TStrings);
  431.          FUNCTION GetItemIndex:LONGINT;
  432.          PROCEDURE SetItemIndex(Value:LONGINT);
  433.          FUNCTION GetSelCount:LONGINT;
  434.          FUNCTION GetSelect(Index:LONGINT):BOOLEAN;
  435.          PROCEDURE SetSelect(Index:LONGINT;Value:BOOLEAN);
  436.          FUNCTION GetTopIndex:LONGINT;
  437.          PROCEDURE SetTopIndex(Index:LONGINT);
  438.          FUNCTION GetItemHeight:LONGINT;
  439.          PROCEDURE DrawDragRect;
  440.          PROCEDURE BuildSelectList;
  441.          FUNCTION GetSelectItem:LONGINT;
  442.       PROTECTED
  443.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  444.          PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
  445.          PROCEDURE SetupComponent;OVERRIDE;
  446.          PROCEDURE SetupShow;OVERRIDE;
  447.          PROCEDURE DestroyWnd;OVERRIDE;
  448.          PROCEDURE CharEvent(VAR Key:CHAR;RepeatCount:BYTE);OVERRIDE;
  449.          PROCEDURE ScanEvent(VAR KeyCode:TKeyCode;RepeatCount:BYTE);OVERRIDE;
  450.          PROCEDURE MouseClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  451.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  452.          PROCEDURE MouseUp(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  453.          PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
  454.          PROCEDURE ItemFocus(Index:LONGINT);VIRTUAL;
  455.          PROCEDURE ItemSelect(Index:LONGINT);VIRTUAL;
  456.          PROCEDURE MeasureItem(Index:LONGINT;VAR Width,Height:LONGINT);VIRTUAL;
  457.          PROCEDURE DrawItem(Index:LONGINT;Rec:TRect;State:TOwnerDrawState);VIRTUAL;
  458.          PROCEDURE DragOver(Source:TObject;X,Y:LONGINT;State:TDragState;
  459.                             VAR Accept:BOOLEAN);OVERRIDE;
  460.          PROCEDURE DragDrop(Source:TObject;X,Y:LONGINT);OVERRIDE;
  461.       PUBLIC
  462.          DESTRUCTOR Destroy;OVERRIDE;
  463.          PROCEDURE Show;OVERRIDE;
  464.          PROCEDURE Clear;VIRTUAL;
  465.          PROCEDURE BeginUpdate;
  466.          PROCEDURE EndUpdate;
  467.          FUNCTION ItemAtPos(pos:TPoint;Existing:BOOLEAN):LONGINT;
  468.          FUNCTION ItemRect(Index:LONGINT):TRect;
  469.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  470.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  471.          PROPERTY ItemIndex:LONGINT read GetItemIndex write SetItemIndex;
  472.          PROPERTY SelCount:LONGINT read GetSelCount;
  473.          PROPERTY Selected[Index:LONGINT]:BOOLEAN read GetSelect write SetSelect;
  474.          PROPERTY TopIndex:LONGINT read GetTopIndex write SetTopIndex;
  475.          PROPERTY XAlign;
  476.          PROPERTY XStretch;
  477.          PROPERTY YAlign;
  478.          PROPERTY YStretch;
  479.       PUBLISHED
  480.          PROPERTY Align;
  481.          PROPERTY Color;
  482.          PROPERTY PenColor;
  483.          PROPERTY DragCursor;
  484.          PROPERTY DragMode;
  485.          PROPERTY Duplicates:BOOLEAN read FDuplicates write FDuplicates;
  486.          PROPERTY Enabled;
  487.          PROPERTY ExtendedSelect:BOOLEAN read FExtendedSelect write SetExtendedSelect;
  488.          PROPERTY Font;
  489.          PROPERTY HorzScroll:BOOLEAN read FHorzScroll write SetHorzScroll;
  490.          PROPERTY IntegralHeight:BOOLEAN read FIntegralHeight write SetIntegralHeight;
  491.          PROPERTY ItemHeight:LONGINT read GetItemHeight write FItemHeight;
  492.          PROPERTY Items:TStrings read GetItems write SetItems;
  493.          PROPERTY MultiSelect:BOOLEAN read FMultiSelect write SetMultiSelect;
  494.          PROPERTY ParentColor;
  495.          PROPERTY ParentPenColor;
  496.          PROPERTY ParentFont;
  497.          PROPERTY ParentShowHint;
  498.          PROPERTY PopupMenu;
  499.          PROPERTY ShowDragRects:BOOLEAN read FShowDragRects write FShowDragRects;
  500.          PROPERTY ShowHint;
  501.          PROPERTY Sorted:BOOLEAN read FSorted write SetSorted;
  502.          PROPERTY Style:TListBoxStyle read FStyle write SetStyle;
  503.          PROPERTY TabOrder;
  504.          PROPERTY TabStop;
  505.          PROPERTY Visible;
  506.          PROPERTY ZOrder;
  507.  
  508.          PROPERTY OnCanDrag;
  509.          PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
  510.          PROPERTY OnDblClick;
  511.          PROPERTY OnDragDrop;
  512.          PROPERTY OnDragOver;
  513.          PROPERTY OnDrawItem:TListBoxDrawItemEvent read FOnDrawItem write FOnDrawItem;
  514.          PROPERTY OnEndDrag;
  515.          PROPERTY OnEnter;
  516.          PROPERTY OnExit;
  517.          PROPERTY OnFontChange;
  518.          PROPERTY OnItemFocus:TItemFocusEvent read FOnItemFocus write FOnItemFocus;
  519.          PROPERTY OnItemSelect:TItemSelectEvent read FOnItemSelect write FOnItemSelect;
  520.          PROPERTY OnKeyPress;
  521.          PROPERTY OnMeasureItem:TListBoxMeasureItemEvent read FOnMeasureItem write FOnMeasureItem;
  522.          PROPERTY OnMouseClick;
  523.          PROPERTY OnMouseDblClick;
  524.          PROPERTY OnMouseDown;
  525.          PROPERTY OnMouseMove;
  526.          PROPERTY OnMouseUp;
  527.          PROPERTY OnScan;
  528.          PROPERTY OnSetupShow;
  529.          PROPERTY OnStartDrag;
  530.     END;
  531.  
  532.  
  533.     {$M+}
  534.     TComboBoxStyle=(csDropDown,csSimple,csDropDownList);
  535.     {$M-}
  536.  
  537.     TComboBox=CLASS(TControl)
  538.       PRIVATE
  539.          FListBoxHeight:LONGINT;
  540.          FStyle:TComboBoxStyle;
  541.          FEdit:TEdit;
  542.          FEditHeight:LONGINT;
  543.          FShowButton:TControl;
  544.          FListBox:TListBox;
  545.          FDropped:BOOLEAN;
  546.          FAlternate:BOOLEAN;
  547.          FDropDownCount:LONGINT;
  548.          FPopupMenu:TPopupMenu;
  549.          FOnItemFocus:TItemFocusEvent;
  550.          FOnItemSelect:TItemSelectEvent;
  551.          FOnDropDown:TNotifyEvent;
  552.          FOnChange:TNotifyEvent;
  553.          PROCEDURE CMTextChanged(VAR Msg:TMessage);message CM_TEXTCHANGED;
  554.          PROCEDURE EvEditChanged(Sender:TObject);
  555.          PROCEDURE EvKillFocus(Sender:TObject);
  556.          FUNCTION GetListBoxHeight:LONGINT;
  557.          PROCEDURE SetupShowButton;
  558.          PROCEDURE DestroyShowButton;
  559.          PROCEDURE SetStyle(NewStyle:TComboBoxStyle);
  560.          FUNCTION GetItems:TStrings;
  561.          PROCEDURE SetItems(AStrings:TStrings);
  562.          FUNCTION GetItemIndex:LONGINT;
  563.          PROCEDURE SetItemIndex(Value:LONGINT);
  564.          FUNCTION GetSorted:BOOLEAN;
  565.          PROCEDURE SetSorted(Value:BOOLEAN);
  566.          FUNCTION GetDuplicates:BOOLEAN;
  567.          PROCEDURE SetDuplicates(Value:BOOLEAN);
  568.          PROCEDURE SetExtension(CONST Value:STRING);
  569.          FUNCTION GetExtension:STRING;
  570.          FUNCTION GetMaxLength:INTEGER;
  571.          PROCEDURE SetMaxLength(tl:INTEGER);
  572.          PROCEDURE SetSelStart(x:INTEGER);
  573.          FUNCTION GetSelStart:INTEGER;
  574.          PROCEDURE SetSelLength(x:INTEGER);
  575.          FUNCTION GetSelLength:INTEGER;
  576.          FUNCTION GetSelText:STRING;
  577.          PROCEDURE SetSelText(CONST Value:STRING);
  578.          FUNCTION GetBorderStyle:TBorderStyle;
  579.          PROCEDURE SetBorderStyle(Value:TBorderStyle);
  580.          PROCEDURE SetAlternate(Value:BOOLEAN);
  581.          PROCEDURE SetDroppedDown(Value:BOOLEAN);
  582.          PROCEDURE AdjustDropDown;
  583.          PROCEDURE SetPopupMenu(NewMenu:TPopupMenu);
  584.       PROTECTED
  585.          PROCEDURE SetupComponent;OVERRIDE;
  586.          PROCEDURE CreateWnd;OVERRIDE;
  587.          PROCEDURE DestroyWnd;OVERRIDE;
  588.          PROCEDURE Move;OVERRIDE;
  589.          PROCEDURE Resize;OVERRIDE;
  590.          PROCEDURE EditChange;VIRTUAL;
  591.          PROCEDURE FontChange;OVERRIDE;
  592.          PROCEDURE SetFocus;OVERRIDE;
  593.          PROCEDURE ItemFocus(Index:LONGINT);VIRTUAL;
  594.          PROCEDURE ItemSelect(Index:LONGINT);VIRTUAL;
  595.          PROCEDURE UpdateListBoxPos(VAR ALeft,ABottom,AWidth,AHeight:LONGINT);VIRTUAL;
  596.          PROPERTY AlternateButton:BOOLEAN read FAlternate write SetAlternate;
  597.       PUBLIC
  598.          DESTRUCTOR Destroy;OVERRIDE;
  599.          PROCEDURE SetWindowPos(NewLeft,NewBottom,NewWidth,NewHeight:LONGINT);OVERRIDE;
  600.          PROCEDURE Invalidate;OVERRIDE;
  601.          PROCEDURE Update;OVERRIDE;
  602.          PROCEDURE Hide;OVERRIDE;
  603.          PROCEDURE SelectAll;
  604.          PROCEDURE Clear;
  605.          PROCEDURE BeginUpdate;
  606.          PROCEDURE EndUpdate;
  607.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  608.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  609.          PROPERTY ItemIndex:LONGINT read GetItemIndex write SetItemIndex;
  610.          PROPERTY DroppedDown:BOOLEAN read FDropped write SetDroppedDown;
  611.          PROPERTY XAlign;
  612.          PROPERTY XStretch;
  613.          PROPERTY YAlign;
  614.          PROPERTY YStretch;
  615.       PUBLISHED
  616.          PROPERTY Align;
  617.          PROPERTY Color;
  618.          PROPERTY BorderStyle:TBorderStyle read GetBorderStyle write SetBorderStyle;
  619.          PROPERTY PenColor;
  620.          PROPERTY DragCursor;
  621.          PROPERTY DragMode;
  622.          PROPERTY DropDownCount:LONGINT read FDropDownCount write FDropDownCount;
  623.          PROPERTY Duplicates:BOOLEAN read GetDuplicates write SetDuplicates;
  624.          PROPERTY Enabled;
  625.          PROPERTY Font;
  626.          PROPERTY Items:TStrings read GetItems write SetItems;
  627.          PROPERTY MaxLength:INTEGER read GetMaxLength write SetMaxLength;
  628.          PROPERTY ParentColor;
  629.          PROPERTY ParentPenColor;
  630.          PROPERTY ParentFont;
  631.          PROPERTY ParentShowHint;
  632.          PROPERTY PopupMenu:TPopupMenu read FPopupMenu write SetPopupMenu;
  633.          PROPERTY SelLength:INTEGER read GetSelLength write SetSelLength;
  634.          PROPERTY SelStart:INTEGER read GetSelStart write SetSelStart;
  635.          PROPERTY SelText:STRING read GetSelText write SetSelText;
  636.          PROPERTY ShowHint;
  637.          PROPERTY Sorted:BOOLEAN read GetSorted write SetSorted;
  638.          PROPERTY Style:TComboBoxStyle read FStyle write SetStyle;
  639.          PROPERTY TabOrder;
  640.          PROPERTY TabStop;
  641.          PROPERTY Text;
  642.          PROPERTY TextExtension:STRING read GetExtension write SetExtension;
  643.          PROPERTY Visible;
  644.          PROPERTY ZOrder;
  645.  
  646.          PROPERTY OnCanDrag;
  647.          PROPERTY OnChange:TNotifyEvent read FOnChange write FOnChange;
  648.          PROPERTY OnDblClick;
  649.          PROPERTY OnDragDrop;
  650.          PROPERTY OnDragOver;
  651.          PROPERTY OnDropDown:TNotifyEvent read FOnDropDown write FOnDropDown;
  652.          PROPERTY OnEndDrag;
  653.          PROPERTY OnEnter;
  654.          PROPERTY OnExit;
  655.          PROPERTY OnFontChange;
  656.          PROPERTY OnItemFocus:TItemFocusEvent read FOnItemFocus write FOnItemFocus;
  657.          PROPERTY OnItemSelect:TItemSelectEvent read FOnItemSelect write FOnItemSelect;
  658.          PROPERTY OnKeyPress;
  659.          PROPERTY OnScan;
  660.          PROPERTY OnSetupShow;
  661.          PROPERTY OnStartDrag;
  662.     END;
  663.  
  664.  
  665.     {$M+}
  666.     TValueSetContentStyle=(vscBitmap,vscText,vscRGBColor);
  667.     {$M-}
  668.  
  669.     TValueSet=CLASS(TScrollingWinControl)
  670.       PRIVATE
  671.          FMemory:POINTER;
  672.          FRows:LONGINT;
  673.          FColumns:LONGINT;
  674.          FCount:LONGINT;
  675.          FSelection:LONGINT;
  676.          FCtl3D:BOOLEAN;
  677.          FBorderStyle:TBorderStyle;
  678.          FItemBorder:TBorderStyle;
  679.          FScaleBitmap:BOOLEAN;
  680.          FContentStyle:TValueSetContentStyle;
  681.          FAutoSize:BOOLEAN;
  682.          FMargin,FSpacing:LONGINT;
  683.          FItemWidth,FItemHeight:LONGINT;
  684.          FUpdateCount:LONGINT;
  685.          FOnItemFocus:TItemFocusEvent;
  686.          FOnItemSelect:TItemSelectEvent;
  687.          PROCEDURE SetCtl3D(Value:BOOLEAN);
  688.          PROCEDURE SetBorderStyle(Value:TBorderStyle);
  689.          PROCEDURE SetItemBorder(Value:TBorderStyle);
  690.          PROCEDURE SetScaleBitmap(Value:BOOLEAN);
  691.          PROCEDURE SetContentStyle(NewStyle:TValueSetContentStyle);
  692.          PROCEDURE SetRows(Value:LONGINT);
  693.          PROCEDURE SetColumns(Value:LONGINT);
  694.          FUNCTION GetData(Index:LONGINT):POINTER;
  695.          PROCEDURE FreeData(Index:LONGINT);
  696.          PROCEDURE SetRGB(Index:LONGINT;NewValue:TColor);
  697.          FUNCTION GetRGB(Index:LONGINT):TColor;
  698.          PROCEDURE SetBitmap(Index:LONGINT;NewValue:TBitmap);
  699.          FUNCTION GetBitmap(Index:LONGINT):TBitmap;
  700.          PROCEDURE SetText(Index:LONGINT;NewValue:STRING);
  701.          FUNCTION GetText(Index:LONGINT):STRING;
  702.          PROCEDURE SetAutoSize(NewValue:BOOLEAN);
  703.          PROCEDURE SetItemWidth(NewValue:LONGINT);
  704.          PROCEDURE SetItemHeight(NewValue:LONGINT);
  705.          PROCEDURE SetSelection(Value:LONGINT);
  706.          PROCEDURE SetupScrollBars;
  707.          PROCEDURE GetXYVisible(VAR xVisible,yVisible:LONGINT);
  708.       PROTECTED
  709.          FUNCTION RectFromIndex(Index:LONGINT):TRect;
  710.          FUNCTION IndexFromPoint(X,Y:LONGINT):LONGINT;
  711.          PROCEDURE SetupComponent;OVERRIDE;
  712.          PROCEDURE DrawSelection(Index:LONGINT);VIRTUAL;
  713.          PROCEDURE DrawInterior(Index:LONGINT);VIRTUAL;
  714.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  715.          PROCEDURE MouseDblClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  716.          PROCEDURE ItemFocus(Index:LONGINT);VIRTUAL;
  717.          PROCEDURE ItemSelect(Index:LONGINT);VIRTUAL;
  718.          PROCEDURE SetFocus;OVERRIDE;
  719.          PROCEDURE KillFocus;OVERRIDE;
  720.          PROCEDURE CharEvent(VAR Key:CHAR;RepeatCount:BYTE);OVERRIDE;
  721.          PROCEDURE ScanEvent(VAR KeyCode:TKeyCode;RepeatCount:BYTE);OVERRIDE;
  722.          PROCEDURE Resize;OVERRIDE;
  723.          PROCEDURE SetupShow;OVERRIDE;
  724.          PROCEDURE Scroll(Sender:TScrollBar;ScrollCode:TScrollCode;VAR ScrollPos:LONGINT);OVERRIDE;
  725.          PROPERTY Margin:LONGINT read FMargin write FMargin;
  726.          PROPERTY Spacing:LONGINT read FSpacing write FSpacing;
  727.       PUBLIC
  728.          DESTRUCTOR Destroy;OVERRIDE;
  729.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  730.          FUNCTION IndexFromColumnRow(Column,Row:LONGINT):LONGINT;
  731.          PROCEDURE ColumnRowFromIndex(Index:LONGINT;VAR Column,Row:LONGINT);
  732.          PROCEDURE SetDimension(Column,Row:LONGINT);
  733.          PROCEDURE SetRGBData(Index:LONGINT;CONST Data:ARRAY OF TColor);
  734.          PROCEDURE SetBitmapData(Index:LONGINT;CONST Data:ARRAY OF TBitmap);
  735.          PROCEDURE SetTextData(Index:LONGINT;CONST Data:ARRAY OF STRING);
  736.          PROCEDURE BeginUpdate;
  737.          PROCEDURE EndUpdate;
  738.          PROPERTY Count:LONGINT read FCount;
  739.          PROPERTY RGBData[Index:LONGINT]:TColor read GetRGB write SetRGB;
  740.          PROPERTY BitmapData[Index:LONGINT]:TBitmap read GetBitmap write SetBitmap;
  741.          PROPERTY TextData[Index:LONGINT]:STRING read GetText write SetText;
  742.          PROPERTY XAlign;
  743.          PROPERTY XStretch;
  744.          PROPERTY YAlign;
  745.          PROPERTY YStretch;
  746.       PUBLISHED
  747.          PROPERTY Align;
  748.          PROPERTY AutoSize:BOOLEAN read FAutoSize write SetAutoSize;
  749.          PROPERTY Color;
  750.          PROPERTY BorderStyle:TBorderStyle read FBorderStyle write SetBorderStyle;
  751.          PROPERTY Ctl3D:BOOLEAN read FCtl3D write SetCtl3D;
  752.          PROPERTY PenColor;
  753.          PROPERTY Columns:LONGINT read FColumns write SetColumns;
  754.          PROPERTY ContentStyle:TValueSetContentStyle read FContentStyle write SetContentStyle;
  755.          PROPERTY DragCursor;
  756.          PROPERTY DragMode;
  757.          PROPERTY Enabled;
  758.          PROPERTY Font;
  759.          PROPERTY ItemBorder:TBorderStyle read FItemBorder write SetItemBorder;
  760.          PROPERTY ItemHeight:LONGINT read FItemHeight write SetItemHeight;
  761.          PROPERTY ItemWidth:LONGINT read FItemWidth write SetItemWidth;
  762.          PROPERTY ParentColor;
  763.          PROPERTY ParentPenColor;
  764.          PROPERTY ParentFont;
  765.          PROPERTY ParentShowHint;
  766.          PROPERTY PopupMenu;
  767.          PROPERTY Rows:LONGINT read FRows write SetRows;
  768.          PROPERTY ScaleBitmap:BOOLEAN read FScaleBitmap write SetScaleBitmap;
  769.          PROPERTY ScrollBars;
  770.          PROPERTY Selection:LONGINT read FSelection write SetSelection;
  771.          PROPERTY ShowHint;
  772.          PROPERTY TabOrder;
  773.          PROPERTY TabStop;
  774.          PROPERTY Visible;
  775.          PROPERTY ZOrder;
  776.  
  777.          PROPERTY OnCanDrag;
  778.          PROPERTY OnDblClick;
  779.          PROPERTY OnDragDrop;
  780.          PROPERTY OnDragOver;
  781.          PROPERTY OnEndDrag;
  782.          PROPERTY OnEnter;
  783.          PROPERTY OnExit;
  784.          PROPERTY OnFontChange;
  785.          PROPERTY OnItemFocus:TItemFocusEvent read FOnItemFocus write FOnItemFocus;
  786.          PROPERTY OnItemSelect:TItemSelectEvent read FOnItemSelect write FOnItemSelect;
  787.          PROPERTY OnMouseClick;
  788.          PROPERTY OnMouseDblClick;
  789.          PROPERTY OnMouseDown;
  790.          PROPERTY OnMouseMove;
  791.          PROPERTY OnMouseUp;
  792.          PROPERTY OnScan;
  793.          PROPERTY OnSetupShow;
  794.          PROPERTY OnStartDrag;
  795.     END;
  796.  
  797.  
  798. FUNCTION InsertLabel(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  799.            Caption:STRING):TLabel;
  800. FUNCTION InsertComboBox(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  801.            Style:TComboBoxStyle):TComboBox;
  802. FUNCTION InsertValueSet(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  803.            Columns,Rows:LONGINT;ContentStyle:TValueSetContentStyle):TValueSet;
  804. FUNCTION InsertGroupBox(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  805.            Caption:STRING):TGroupBox;
  806. FUNCTION InsertEdit(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  807.            Text,Hint:STRING):TEdit;
  808. FUNCTION InsertListBox(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  809.            Hint:STRING):TListBox;
  810. FUNCTION InsertMemo(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  811.            Hint:STRING):TMemo;
  812. FUNCTION InsertScrollBar(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  813.            Kind:TScrollBarKind):TScrollBar;
  814.  
  815.  
  816. IMPLEMENTATION
  817.  
  818.