home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibylft1.zip / DOC.DAT / DOC / SPCC / BUTTONS.PAS next >
Pascal/Delphi Source File  |  1997-04-08  |  13KB  |  373 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 Buttons;
  11.  
  12.  
  13. INTERFACE
  14.  
  15. {$IFDEF OS2}
  16. USES PmWin,BseDos;
  17. {$ENDIF}
  18.  
  19. {$IFDEF Win95}
  20. USES WinUser,CommCtrl;
  21. {$ENDIF}
  22.  
  23. USES SysUtils,Messages,Classes,Forms,Graphics;
  24.  
  25. {$i StdBmpId.Inc}
  26.  
  27. TYPE
  28.     TButtonControl=CLASS(TControl)
  29.       PRIVATE
  30.          FOnClick:TNotifyEvent;
  31.       PROTECTED
  32.          PROCEDURE SetupComponent;OVERRIDE;
  33.          PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
  34.          PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
  35.          FUNCTION EvaluateShortCut(KeyCode:TKeyCode):BOOLEAN;OVERRIDE;
  36.       PUBLIC
  37.          PROCEDURE Click;VIRTUAL;
  38.          PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
  39.     END;
  40.  
  41.  
  42.     TRadioButton=CLASS(TButtonControl)
  43.       PRIVATE
  44.          FInitChecked:BOOLEAN;
  45.          FUNCTION GetChecked:BOOLEAN;
  46.          PROCEDURE SetChecked(NewState:BOOLEAN);
  47.       PROTECTED
  48.          PROCEDURE SetupComponent;OVERRIDE;
  49.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  50.          PROCEDURE CreateWnd;OVERRIDE;
  51.       PUBLIC
  52.          PROCEDURE Click;OVERRIDE;
  53.       PUBLISHED
  54.          PROPERTY Color;
  55.          PROPERTY Caption;
  56.          PROPERTY Checked:BOOLEAN read GetChecked write SetChecked;
  57.          PROPERTY DragCursor;
  58.          PROPERTY DragMode;
  59.          PROPERTY Enabled;
  60.          PROPERTY Font;
  61.          PROPERTY ParentColor;
  62.          PROPERTY ParentFont;
  63.          PROPERTY ParentPenColor;
  64.          PROPERTY ParentShowHint;
  65.          PROPERTY PenColor;
  66.          PROPERTY PopupMenu;
  67.          PROPERTY ShowHint;
  68.          PROPERTY TabOrder;
  69.          PROPERTY TabStop;
  70.          PROPERTY Visible;
  71.          PROPERTY ZOrder;
  72.  
  73.          PROPERTY OnCanDrag;
  74.          PROPERTY OnClick;
  75.          PROPERTY OnDragDrop;
  76.          PROPERTY OnDragOver;
  77.          PROPERTY OnEndDrag;
  78.          PROPERTY OnEnter;
  79.          PROPERTY OnExit;
  80.          PROPERTY OnFontChange;
  81.          PROPERTY OnKeyPress;
  82.          PROPERTY OnMouseDown;
  83.          PROPERTY OnMouseMove;
  84.          PROPERTY OnMouseUp;
  85.          PROPERTY OnScan;
  86.          PROPERTY OnSetupShow;
  87.          PROPERTY OnStartDrag;
  88.     END;
  89.  
  90.  
  91.     TCheckBoxState=(cbUnchecked,cbChecked,cbGrayed);
  92.  
  93.     TCheckBox=CLASS(TButtonControl)
  94.       PRIVATE
  95.          FInitState:TCheckBoxState;
  96.          FAllowGrayed:BOOLEAN;
  97.          FUNCTION GetChecked:BOOLEAN;
  98.          PROCEDURE SetChecked(NewState:BOOLEAN);
  99.          FUNCTION GetState:TCheckBoxState;
  100.          PROCEDURE SetState(NewState:TCheckBoxState);
  101.       PROTECTED
  102.          PROCEDURE SetupComponent;OVERRIDE;
  103.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  104.          PROCEDURE CreateWnd;OVERRIDE;
  105.          PROCEDURE Toggle;VIRTUAL;
  106.       PUBLIC
  107.          PROCEDURE Click;OVERRIDE;
  108.       PUBLISHED
  109.          PROPERTY AllowGrayed:BOOLEAN read FAllowGrayed write FAllowGrayed;
  110.          PROPERTY Color;
  111.          PROPERTY Caption;
  112.          PROPERTY Checked:BOOLEAN read GetChecked write SetChecked;
  113.          PROPERTY PenColor;
  114.          PROPERTY DragCursor;
  115.          PROPERTY DragMode;
  116.          PROPERTY Enabled;
  117.          PROPERTY Font;
  118.          PROPERTY ParentColor;
  119.          PROPERTY ParentPenColor;
  120.          PROPERTY ParentFont;
  121.          PROPERTY ParentShowHint;
  122.          PROPERTY PopupMenu;
  123.          PROPERTY ShowHint;
  124.          PROPERTY State:TCheckBoxState read GetState write SetState;
  125.          PROPERTY TabOrder;
  126.          PROPERTY TabStop;
  127.          PROPERTY Visible;
  128.          PROPERTY ZOrder;
  129.  
  130.          PROPERTY OnCanDrag;
  131.          PROPERTY OnClick;
  132.          PROPERTY OnDragDrop;
  133.          PROPERTY OnDragOver;
  134.          PROPERTY OnEndDrag;
  135.          PROPERTY OnEnter;
  136.          PROPERTY OnExit;
  137.          PROPERTY OnFontChange;
  138.          PROPERTY OnKeyPress;
  139.          PROPERTY OnMouseDown;
  140.          PROPERTY OnMouseMove;
  141.          PROPERTY OnMouseUp;
  142.          PROPERTY OnScan;
  143.          PROPERTY OnSetupShow;
  144.          PROPERTY OnStartDrag;
  145.     END;
  146.  
  147.  
  148.     TButton=CLASS(TButtonControl)
  149.       PRIVATE
  150.          FCancel:BOOLEAN;
  151.          FDefault:BOOLEAN;
  152.          FModalResult:TCommand;
  153.          PROCEDURE SetDefault(Value:BOOLEAN);VIRTUAL;
  154.          PROCEDURE SetCancel(Value:BOOLEAN);
  155.          FUNCTION GetFormButton(Default:BOOLEAN):TButton;
  156.          PROCEDURE SetFormButton(Default:BOOLEAN;Button:TButton);
  157.       PROTECTED
  158.          PROCEDURE SetupComponent;OVERRIDE;
  159.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  160.          PROCEDURE SetupShow;OVERRIDE;
  161.          PROCEDURE SetFocus;OVERRIDE;
  162.       PUBLIC
  163.          DESTRUCTOR Destroy;OVERRIDE;
  164.          PROCEDURE Click;OVERRIDE;
  165.          PROPERTY XAlign;
  166.          PROPERTY XStretch;
  167.          PROPERTY YAlign;
  168.          PROPERTY YStretch;
  169.       PUBLISHED
  170.          PROPERTY Align;
  171.          PROPERTY Color;
  172.          PROPERTY Cancel:BOOLEAN read FCancel write SetCancel;
  173.          PROPERTY Caption;
  174.          PROPERTY PenColor;
  175.          PROPERTY Command;
  176.          PROPERTY Default:BOOLEAN read FDefault write SetDefault;
  177.          PROPERTY DragCursor;
  178.          PROPERTY DragMode;
  179.          PROPERTY Enabled;
  180.          PROPERTY Font;
  181.          PROPERTY ModalResult:TCommand read FModalResult write FModalResult;
  182.          PROPERTY ParentColor;
  183.          PROPERTY ParentPenColor;
  184.          PROPERTY ParentFont;
  185.          PROPERTY ParentShowHint;
  186.          PROPERTY PopupMenu;
  187.          PROPERTY ShowHint;
  188.          PROPERTY TabOrder;
  189.          PROPERTY TabStop;
  190.          PROPERTY Visible;
  191.          PROPERTY ZOrder;
  192.  
  193.          PROPERTY OnCanDrag;
  194.          PROPERTY OnClick;
  195.          PROPERTY OnDragDrop;
  196.          PROPERTY OnDragOver;
  197.          PROPERTY OnEndDrag;
  198.          PROPERTY OnEnter;
  199.          PROPERTY OnExit;
  200.          PROPERTY OnFontChange;
  201.          PROPERTY OnKeyPress;
  202.          PROPERTY OnMouseDown;
  203.          PROPERTY OnMouseMove;
  204.          PROPERTY OnMouseUp;
  205.          PROPERTY OnScan;
  206.          PROPERTY OnSetupShow;
  207.          PROPERTY OnStartDrag;
  208.     END;
  209.  
  210.  
  211.     TPosSize=RECORD
  212.          Left,Bottom,Width,Height:LONGINT;
  213.     END;
  214.  
  215.     {$M+}
  216.     TButtonLayout=(blGlyphLeft,blGlyphRight,blGlyphTop,blGlyphBottom);
  217.  
  218.     TBitBtnKind=(bkCustom,bkOk,bkCancel,bkHelp,bkYes,bkNo,bkClose,
  219.       bkAbort,bkRetry,bkIgnore,bkAll,bkOpen);
  220.     {$M-}
  221.  
  222.     TBitBtn=CLASS(TButton)
  223.       PRIVATE
  224.          bmp:TPosSize;
  225.          txt:TPosSize;
  226.          int:TPosSize;
  227.          IsBmp:BOOLEAN;
  228.          IsTxt:BOOLEAN;
  229.          IsMnemo:BOOLEAN;
  230.          InRedraw:BOOLEAN;
  231.          FDragging:BOOLEAN;
  232.          FDown:BOOLEAN;
  233.          FSpaceDown:BOOLEAN;
  234.          FLayout:TButtonLayout;
  235.          FMargin:LONGINT;
  236.          FSpacing:LONGINT;
  237.          FKind:TBitBtnKind;
  238.          FBitmap:TBitmap;
  239.          PROCEDURE CMTextChanged(VAR Msg:TMessage);message CM_TEXTCHANGED;
  240.          {$IFDEF Win95}
  241.          PROCEDURE WMKeyDown(VAR Msg:TMessage); message WM_KEYDOWN;
  242.          PROCEDURE WMKeyUp(VAR Msg:TMessage); message WM_KEYUP;
  243.          {$ENDIF}
  244.          PROCEDURE SetDefault(Value:BOOLEAN);OVERRIDE;
  245.          FUNCTION GetDown:BOOLEAN;VIRTUAL;
  246.          PROCEDURE SetDown(Value:BOOLEAN);VIRTUAL;
  247.          PROCEDURE SetLayout(Value:TButtonLayout);
  248.          PROCEDURE SetMargin(Value:LONGINT);
  249.          PROCEDURE SetSpacing(Value:LONGINT);
  250.          PROCEDURE SetKind(Value:TBitBtnKind);
  251.          FUNCTION GetGlyph:TBitmap;
  252.          PROCEDURE SetGlyph(NewBitmap:TBitmap);VIRTUAL;
  253.       PROTECTED
  254.          PROCEDURE SetupComponent;OVERRIDE;
  255.          PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
  256.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  257.          PROCEDURE SetupShow;OVERRIDE;
  258.          PROCEDURE RealignControls;OVERRIDE;
  259.          PROCEDURE FontChange;OVERRIDE;
  260.          {$IFDEF OS2}
  261.          PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
  262.          {$ENDIF}
  263.          PROCEDURE DrawFrame(Down:BOOLEAN);VIRTUAL;
  264.          PROCEDURE DrawText(CONST Caption:STRING;Down:BOOLEAN);VIRTUAL;
  265.          PROCEDURE DrawBitmap(Bitmap:TBitmap;Down:BOOLEAN);VIRTUAL;
  266.          PROCEDURE Arrange;VIRTUAL;
  267.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  268.          PROCEDURE MouseUp(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  269.          PROCEDURE MouseMove(ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  270.          PROCEDURE MouseDblClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  271.          PROPERTY Down:BOOLEAN read GetDown write SetDown;
  272.       PUBLIC
  273.          DESTRUCTOR Destroy;OVERRIDE;
  274.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  275.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  276.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  277.          PROCEDURE Click;OVERRIDE;
  278.       PUBLISHED
  279.          PROPERTY Glyph:TBitmap read GetGlyph write SetGlyph;
  280.          PROPERTY Kind:TBitBtnKind read FKind write SetKind;
  281.          PROPERTY Layout:TButtonLayout read FLayout write SetLayout;
  282.          PROPERTY Margin:LONGINT read FMargin write SetMargin;
  283.          PROPERTY Spacing:LONGINT read FSpacing write SetSpacing;
  284.          PROPERTY OnPaint;
  285.     END;
  286.  
  287.  
  288.     TAnimatedButton=CLASS(TBitBtn)
  289.       PRIVATE
  290.          FSaveBitmap:TBitmap;
  291.          FBitmapList:TBitmapList;
  292.          FAnimationTimer:TTimer;
  293.          FLastPlayItem:LONGINT;
  294.          FInterval:LONGINT;
  295.          PROCEDURE SetInterval(Value:LONGINT);
  296.          PROCEDURE SetGlyph(NewBitmap:TBitmap);OVERRIDE;
  297.          PROCEDURE EvTimer(Sender:TObject);
  298.       PROTECTED
  299.          PROCEDURE SetupComponent;OVERRIDE;
  300.       PUBLIC
  301.          DESTRUCTOR Destroy;OVERRIDE;
  302.          PROCEDURE SetupShow;OVERRIDE;
  303.          PROCEDURE StartAnimation;
  304.          PROCEDURE StopAnimation;
  305.          PROCEDURE ResetAnimation;
  306.          PROPERTY BitmapList:TBitmapList read FBitmapList;
  307.       PUBLISHED
  308.          PROPERTY Interval:LONGINT read FInterval write SetInterval;
  309.     END;
  310.  
  311.  
  312.     TButtonState=(bsNormal,bsUp,bsDown);
  313.  
  314.     TSpeedButton=CLASS(TBitBtn)
  315.       PRIVATE
  316.          FIgnoreClick:BOOLEAN;
  317.          FState:TButtonState;
  318.          FAllowAllUp:BOOLEAN;
  319.          FGroupIndex:LONGINT;
  320.          {$IFDEF OS2}
  321.          PROCEDURE WMChar(VAR Msg:TWMChar); message WM_CHAR;
  322.          {$ENDIF}
  323.          PROCEDURE UpdateExclusive;
  324.          PROCEDURE cmButtonPressed(VAR Msg:TMessage);message CM_BUTTONPRESSED;
  325.          FUNCTION GetDown:BOOLEAN;OVERRIDE;
  326.          PROCEDURE SetDown(Value:BOOLEAN);OVERRIDE;
  327.          PROCEDURE SetAllowAllUp(Value:BOOLEAN);
  328.          PROCEDURE SetGroupIndex(Value:LONGINT);
  329.          PROPERTY ModalResult;
  330.       PROTECTED
  331.          PROCEDURE SetupComponent;OVERRIDE;
  332.          PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
  333.          {$IFDEF OS2}
  334.          PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
  335.          {$ENDIF}
  336.          PROCEDURE DrawFrame(Down:BOOLEAN);OVERRIDE;
  337.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  338.          PROCEDURE MouseUp(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  339.          PROCEDURE MouseMove(ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  340.          PROCEDURE MouseDblClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  341.          PROPERTY State:TButtonState read FState write FState;
  342.       PUBLIC
  343.          PROCEDURE Click;OVERRIDE;
  344.       PUBLISHED
  345.          PROPERTY AllowAllUp:BOOLEAN read FAllowAllUp write SetAllowAllUp;
  346.          PROPERTY GroupIndex:LONGINT read FGroupIndex write SetGroupIndex;
  347.          PROPERTY Down; {after Property GroupIndex!}
  348.     END;
  349.  
  350.  
  351. FUNCTION InsertButton(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  352.            Caption,Hint:STRING):TButton;
  353. FUNCTION InsertRadioButton(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  354.            Caption,Hint:STRING):TRadioButton;
  355. FUNCTION InsertCheckBox(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  356.            Caption,Hint:STRING):TCheckBox;
  357. FUNCTION InsertBitBtn(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  358.            Kind:TBitBtnKind;Caption,Hint:STRING):TBitBtn;
  359. FUNCTION InsertAnimatedButton(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  360.            BitmapId:LONGWORD;Caption,Hint:STRING):TAnimatedButton;
  361. FUNCTION InsertSpeedButton(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  362.            BitmapId:LONGWORD;Caption,Hint:STRING):TSpeedButton;
  363.  
  364.  
  365. PROCEDURE SetPackedCheckBoxList(aList:ARRAY OF TCheckBox;Value:LONGWORD);
  366. FUNCTION GetPackedCheckBoxList(aList:ARRAY OF TCheckBox):LONGWORD;
  367. PROCEDURE SetPackedRadioButtonList(aList:ARRAY OF TRadioButton;Value:LONGWORD);
  368. FUNCTION GetPackedRadioButtonList(aList:ARRAY OF TRadioButton):LONGWORD;
  369.  
  370.  
  371. IMPLEMENTATION
  372.  
  373.