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 >
Wrap
Pascal/Delphi Source File
|
1997-04-08
|
13KB
|
373 lines
{╔══════════════════════════════════════════════════════════════════════════╗
║ ║
║ Sibyl Portable Component Classes ║
║ ║
║ Copyright (c) 1995,97 SpeedSoft Germany, All rights reserved. ║
║ ║
╚══════════════════════════════════════════════════════════════════════════╝}
UNIT Buttons;
INTERFACE
{$IFDEF OS2}
USES PmWin,BseDos;
{$ENDIF}
{$IFDEF Win95}
USES WinUser,CommCtrl;
{$ENDIF}
USES SysUtils,Messages,Classes,Forms,Graphics;
{$i StdBmpId.Inc}
TYPE
TButtonControl=CLASS(TControl)
PRIVATE
FOnClick:TNotifyEvent;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
FUNCTION EvaluateShortCut(KeyCode:TKeyCode):BOOLEAN;OVERRIDE;
PUBLIC
PROCEDURE Click;VIRTUAL;
PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
END;
TRadioButton=CLASS(TButtonControl)
PRIVATE
FInitChecked:BOOLEAN;
FUNCTION GetChecked:BOOLEAN;
PROCEDURE SetChecked(NewState:BOOLEAN);
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
PROCEDURE CreateWnd;OVERRIDE;
PUBLIC
PROCEDURE Click;OVERRIDE;
PUBLISHED
PROPERTY Color;
PROPERTY Caption;
PROPERTY Checked:BOOLEAN read GetChecked write SetChecked;
PROPERTY DragCursor;
PROPERTY DragMode;
PROPERTY Enabled;
PROPERTY Font;
PROPERTY ParentColor;
PROPERTY ParentFont;
PROPERTY ParentPenColor;
PROPERTY ParentShowHint;
PROPERTY PenColor;
PROPERTY PopupMenu;
PROPERTY ShowHint;
PROPERTY TabOrder;
PROPERTY TabStop;
PROPERTY Visible;
PROPERTY ZOrder;
PROPERTY OnCanDrag;
PROPERTY OnClick;
PROPERTY OnDragDrop;
PROPERTY OnDragOver;
PROPERTY OnEndDrag;
PROPERTY OnEnter;
PROPERTY OnExit;
PROPERTY OnFontChange;
PROPERTY OnKeyPress;
PROPERTY OnMouseDown;
PROPERTY OnMouseMove;
PROPERTY OnMouseUp;
PROPERTY OnScan;
PROPERTY OnSetupShow;
PROPERTY OnStartDrag;
END;
TCheckBoxState=(cbUnchecked,cbChecked,cbGrayed);
TCheckBox=CLASS(TButtonControl)
PRIVATE
FInitState:TCheckBoxState;
FAllowGrayed:BOOLEAN;
FUNCTION GetChecked:BOOLEAN;
PROCEDURE SetChecked(NewState:BOOLEAN);
FUNCTION GetState:TCheckBoxState;
PROCEDURE SetState(NewState:TCheckBoxState);
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
PROCEDURE CreateWnd;OVERRIDE;
PROCEDURE Toggle;VIRTUAL;
PUBLIC
PROCEDURE Click;OVERRIDE;
PUBLISHED
PROPERTY AllowGrayed:BOOLEAN read FAllowGrayed write FAllowGrayed;
PROPERTY Color;
PROPERTY Caption;
PROPERTY Checked:BOOLEAN read GetChecked write SetChecked;
PROPERTY PenColor;
PROPERTY DragCursor;
PROPERTY DragMode;
PROPERTY Enabled;
PROPERTY Font;
PROPERTY ParentColor;
PROPERTY ParentPenColor;
PROPERTY ParentFont;
PROPERTY ParentShowHint;
PROPERTY PopupMenu;
PROPERTY ShowHint;
PROPERTY State:TCheckBoxState read GetState write SetState;
PROPERTY TabOrder;
PROPERTY TabStop;
PROPERTY Visible;
PROPERTY ZOrder;
PROPERTY OnCanDrag;
PROPERTY OnClick;
PROPERTY OnDragDrop;
PROPERTY OnDragOver;
PROPERTY OnEndDrag;
PROPERTY OnEnter;
PROPERTY OnExit;
PROPERTY OnFontChange;
PROPERTY OnKeyPress;
PROPERTY OnMouseDown;
PROPERTY OnMouseMove;
PROPERTY OnMouseUp;
PROPERTY OnScan;
PROPERTY OnSetupShow;
PROPERTY OnStartDrag;
END;
TButton=CLASS(TButtonControl)
PRIVATE
FCancel:BOOLEAN;
FDefault:BOOLEAN;
FModalResult:TCommand;
PROCEDURE SetDefault(Value:BOOLEAN);VIRTUAL;
PROCEDURE SetCancel(Value:BOOLEAN);
FUNCTION GetFormButton(Default:BOOLEAN):TButton;
PROCEDURE SetFormButton(Default:BOOLEAN;Button:TButton);
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
PROCEDURE SetupShow;OVERRIDE;
PROCEDURE SetFocus;OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
PROCEDURE Click;OVERRIDE;
PROPERTY XAlign;
PROPERTY XStretch;
PROPERTY YAlign;
PROPERTY YStretch;
PUBLISHED
PROPERTY Align;
PROPERTY Color;
PROPERTY Cancel:BOOLEAN read FCancel write SetCancel;
PROPERTY Caption;
PROPERTY PenColor;
PROPERTY Command;
PROPERTY Default:BOOLEAN read FDefault write SetDefault;
PROPERTY DragCursor;
PROPERTY DragMode;
PROPERTY Enabled;
PROPERTY Font;
PROPERTY ModalResult:TCommand read FModalResult write FModalResult;
PROPERTY ParentColor;
PROPERTY ParentPenColor;
PROPERTY ParentFont;
PROPERTY ParentShowHint;
PROPERTY PopupMenu;
PROPERTY ShowHint;
PROPERTY TabOrder;
PROPERTY TabStop;
PROPERTY Visible;
PROPERTY ZOrder;
PROPERTY OnCanDrag;
PROPERTY OnClick;
PROPERTY OnDragDrop;
PROPERTY OnDragOver;
PROPERTY OnEndDrag;
PROPERTY OnEnter;
PROPERTY OnExit;
PROPERTY OnFontChange;
PROPERTY OnKeyPress;
PROPERTY OnMouseDown;
PROPERTY OnMouseMove;
PROPERTY OnMouseUp;
PROPERTY OnScan;
PROPERTY OnSetupShow;
PROPERTY OnStartDrag;
END;
TPosSize=RECORD
Left,Bottom,Width,Height:LONGINT;
END;
{$M+}
TButtonLayout=(blGlyphLeft,blGlyphRight,blGlyphTop,blGlyphBottom);
TBitBtnKind=(bkCustom,bkOk,bkCancel,bkHelp,bkYes,bkNo,bkClose,
bkAbort,bkRetry,bkIgnore,bkAll,bkOpen);
{$M-}
TBitBtn=CLASS(TButton)
PRIVATE
bmp:TPosSize;
txt:TPosSize;
int:TPosSize;
IsBmp:BOOLEAN;
IsTxt:BOOLEAN;
IsMnemo:BOOLEAN;
InRedraw:BOOLEAN;
FDragging:BOOLEAN;
FDown:BOOLEAN;
FSpaceDown:BOOLEAN;
FLayout:TButtonLayout;
FMargin:LONGINT;
FSpacing:LONGINT;
FKind:TBitBtnKind;
FBitmap:TBitmap;
PROCEDURE CMTextChanged(VAR Msg:TMessage);message CM_TEXTCHANGED;
{$IFDEF Win95}
PROCEDURE WMKeyDown(VAR Msg:TMessage); message WM_KEYDOWN;
PROCEDURE WMKeyUp(VAR Msg:TMessage); message WM_KEYUP;
{$ENDIF}
PROCEDURE SetDefault(Value:BOOLEAN);OVERRIDE;
FUNCTION GetDown:BOOLEAN;VIRTUAL;
PROCEDURE SetDown(Value:BOOLEAN);VIRTUAL;
PROCEDURE SetLayout(Value:TButtonLayout);
PROCEDURE SetMargin(Value:LONGINT);
PROCEDURE SetSpacing(Value:LONGINT);
PROCEDURE SetKind(Value:TBitBtnKind);
FUNCTION GetGlyph:TBitmap;
PROCEDURE SetGlyph(NewBitmap:TBitmap);VIRTUAL;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE GetClassData(VAR ClassData:TClassData);OVERRIDE;
PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
PROCEDURE SetupShow;OVERRIDE;
PROCEDURE RealignControls;OVERRIDE;
PROCEDURE FontChange;OVERRIDE;
{$IFDEF OS2}
PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
{$ENDIF}
PROCEDURE DrawFrame(Down:BOOLEAN);VIRTUAL;
PROCEDURE DrawText(CONST Caption:STRING;Down:BOOLEAN);VIRTUAL;
PROCEDURE DrawBitmap(Bitmap:TBitmap;Down:BOOLEAN);VIRTUAL;
PROCEDURE Arrange;VIRTUAL;
PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROCEDURE MouseUp(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROCEDURE MouseMove(ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROCEDURE MouseDblClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROPERTY Down:BOOLEAN read GetDown write SetDown;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE Click;OVERRIDE;
PUBLISHED
PROPERTY Glyph:TBitmap read GetGlyph write SetGlyph;
PROPERTY Kind:TBitBtnKind read FKind write SetKind;
PROPERTY Layout:TButtonLayout read FLayout write SetLayout;
PROPERTY Margin:LONGINT read FMargin write SetMargin;
PROPERTY Spacing:LONGINT read FSpacing write SetSpacing;
PROPERTY OnPaint;
END;
TAnimatedButton=CLASS(TBitBtn)
PRIVATE
FSaveBitmap:TBitmap;
FBitmapList:TBitmapList;
FAnimationTimer:TTimer;
FLastPlayItem:LONGINT;
FInterval:LONGINT;
PROCEDURE SetInterval(Value:LONGINT);
PROCEDURE SetGlyph(NewBitmap:TBitmap);OVERRIDE;
PROCEDURE EvTimer(Sender:TObject);
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
PROCEDURE SetupShow;OVERRIDE;
PROCEDURE StartAnimation;
PROCEDURE StopAnimation;
PROCEDURE ResetAnimation;
PROPERTY BitmapList:TBitmapList read FBitmapList;
PUBLISHED
PROPERTY Interval:LONGINT read FInterval write SetInterval;
END;
TButtonState=(bsNormal,bsUp,bsDown);
TSpeedButton=CLASS(TBitBtn)
PRIVATE
FIgnoreClick:BOOLEAN;
FState:TButtonState;
FAllowAllUp:BOOLEAN;
FGroupIndex:LONGINT;
{$IFDEF OS2}
PROCEDURE WMChar(VAR Msg:TWMChar); message WM_CHAR;
{$ENDIF}
PROCEDURE UpdateExclusive;
PROCEDURE cmButtonPressed(VAR Msg:TMessage);message CM_BUTTONPRESSED;
FUNCTION GetDown:BOOLEAN;OVERRIDE;
PROCEDURE SetDown(Value:BOOLEAN);OVERRIDE;
PROCEDURE SetAllowAllUp(Value:BOOLEAN);
PROCEDURE SetGroupIndex(Value:LONGINT);
PROPERTY ModalResult;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE CreateParams(VAR Params:TCreateParams);OVERRIDE;
{$IFDEF OS2}
PROCEDURE ParentNotification(VAR Msg:TMessage);OVERRIDE;
{$ENDIF}
PROCEDURE DrawFrame(Down:BOOLEAN);OVERRIDE;
PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROCEDURE MouseUp(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROCEDURE MouseMove(ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROCEDURE MouseDblClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
PROPERTY State:TButtonState read FState write FState;
PUBLIC
PROCEDURE Click;OVERRIDE;
PUBLISHED
PROPERTY AllowAllUp:BOOLEAN read FAllowAllUp write SetAllowAllUp;
PROPERTY GroupIndex:LONGINT read FGroupIndex write SetGroupIndex;
PROPERTY Down; {after Property GroupIndex!}
END;
FUNCTION InsertButton(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
Caption,Hint:STRING):TButton;
FUNCTION InsertRadioButton(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
Caption,Hint:STRING):TRadioButton;
FUNCTION InsertCheckBox(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
Caption,Hint:STRING):TCheckBox;
FUNCTION InsertBitBtn(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
Kind:TBitBtnKind;Caption,Hint:STRING):TBitBtn;
FUNCTION InsertAnimatedButton(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
BitmapId:LONGWORD;Caption,Hint:STRING):TAnimatedButton;
FUNCTION InsertSpeedButton(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
BitmapId:LONGWORD;Caption,Hint:STRING):TSpeedButton;
PROCEDURE SetPackedCheckBoxList(aList:ARRAY OF TCheckBox;Value:LONGWORD);
FUNCTION GetPackedCheckBoxList(aList:ARRAY OF TCheckBox):LONGWORD;
PROCEDURE SetPackedRadioButtonList(aList:ARRAY OF TRadioButton;Value:LONGWORD);
FUNCTION GetPackedRadioButtonList(aList:ARRAY OF TRadioButton):LONGWORD;
IMPLEMENTATION