Class TSImageBtn (unit SImageBtn)

Inherits from

TGraphicControl

Constructors


constructor Create(AOwner: TComponent);

Public Declarations

--------------------------------------} { TSImageBtn.



Functions

destructor Destroy;

OnMouseMove := MouseMove;

procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

procedure MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);


procedure Paint;

Protected Declarations

procedure CMEnabledChanged(var Message: TMessage);

Message Events

procedure TSImageBtn.


procedure CMFontChanged(var Message: TMessage);

procedure CMButtonPressed(var Message: TMessage); message CM_BUTTONPRESSED;

procedure TSImageBtn.


procedure CMMouseEnter(var Message: TMessage);


procedure CMMouseLeave(var Message: TMessage);


procedure CMTextChanged(var Message: TMessage);


procedure ImageChanged(Sender: TObject);

Private Methods

procedure SetBriImage(Val : TBitmap);


procedure SetDarkness(Val: Integer);


procedure SetDeepth(Val: TDeepth);


procedure SetImage(Val: TBitmap);


procedure SetShadow(Val: Boolean);


procedure SetSpace(Val: Integer);


procedure SetTrans(Val : TColor);


procedure UpdateShadow;


procedure UpdateTracking;

procedure MeasureXY(var IX, IY, TX, TY : Integer);

Properties

property Caption :


property Cursor :


property Deepth : TDeepth


property Enabled :


property FocusedImage : TBitmap


property Font :


property Hint :


property Image : TBitmap


property ParentFont :


property ParentShowHint :


property PopupMenu :


property Shadow : Boolean


property ShadowsDarkness : Integer


property ShowHint :


property ShowMouseFocus : Boolean


property Space : Integer


property TransparentColor : TColor


Events

event OnClick :

property AllowAllUp: Boolean read FAllowAllUp write SetAllowAllUp default False; property GroupIndex: Integer read FGroupIndex write SetGroupIndex default 0; property NumGlyphs: TNumGlyphs read FNumGlyphs write SetNumGlyphs default 1;

event OnDblClick :


event OnDragDrop :


event OnDragOVer :


event OnEndDrag :


event OnMouseDown :


event OnMouseMove :


event OnMouseUp :


event OnStartDrag :


Variables

FBriImage : TBitmap;


FCaptionChanged : Boolean;


FDarkness : Integer;


FDeepth : TDeepth;


FDeepth2 : TDeepth;


FDisabled : TBitmap;


FImage : TBitmap;


FMouseDown : Boolean;


FMouseFocused : Boolean;

FAllowAllUp : Boolean;

FShadow : Boolean;

Private Declarations } // FGroupIndex : Integer; // FLayout : TButtonLayout;

FShowMouseFocus : Boolean;


FSImage : TBitmap;


FSpace : Integer;


FTrans : TColor;


TMPBMP : TBitmap;



Constructors


constructor Create(AOwner: TComponent);

Public Declarations

--------------------------------------} { TSImageBtn.Create } {--------------------------------------


Functions


destructor Destroy;

OnMouseMove := MouseMove;


procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);


procedure MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);


procedure Paint;

Protected Declarations


procedure CMEnabledChanged(var Message: TMessage);

Message Events

procedure TSImageBtn.SetDown(Value: Boolean); var NeedInvalidate: Boolean; begin if FGroupIndex = 0 then Value := False; if Value <> FDown then begin if FDown and (not FAllowAllUp) then Exit; FDown := Value; if Value then begin NeedInvalidate := FState <> bsExclusive; FState := bsExclusive; if NeedInvalidate then Repaint; end else begin FState := bsUp; Repaint; end; end; end; procedure TSImageBtn.SetGroupIndex(Value: Integer); begin if FGroupIndex <> Value then begin FGroupIndex := Value; UpdateExclusive; end; end; procedure TSImageBtn.SetLayout(Value: TButtonLayout); begin if FLayout <> Value then begin FLayout := Value; Repaint; end; end;


procedure CMFontChanged(var Message: TMessage);

procedure CMButtonPressed(var Message: TMessage); message CM_BUTTONPRESSED;

procedure TSImageBtn.CMButtonPressed(var Message: TMessage); var Sender: TSImageBtn; begin if Message.WParam = FGroupIndex then begin Sender := TSImageBtn(Message.LParam); if Sender <> Self then begin if Sender.Down and FDown then begin FDown := False; FState := bsUp; Repaint; end; FAllowAllUp := Sender.AllowAllUp; end; end; end;


procedure CMMouseEnter(var Message: TMessage);


procedure CMMouseLeave(var Message: TMessage);


procedure CMTextChanged(var Message: TMessage);


procedure ImageChanged(Sender: TObject);

Private Methods


procedure SetBriImage(Val : TBitmap);


procedure SetDarkness(Val: Integer);


procedure SetDeepth(Val: TDeepth);


procedure SetImage(Val: TBitmap);


procedure SetShadow(Val: Boolean);


procedure SetSpace(Val: Integer);


procedure SetTrans(Val : TColor);


procedure UpdateShadow;


procedure UpdateTracking;

procedure MeasureXY(var IX, IY, TX, TY : Integer);


Properties


property Caption :


property Cursor :


property Deepth : TDeepth


property Enabled :


property FocusedImage : TBitmap


property Font :


property Hint :


property Image : TBitmap


property ParentFont :


property ParentShowHint :


property PopupMenu :


property Shadow : Boolean


property ShadowsDarkness : Integer


property ShowHint :


property ShowMouseFocus : Boolean


property Space : Integer


property TransparentColor : TColor


Events


event OnClick :

property AllowAllUp: Boolean read FAllowAllUp write SetAllowAllUp default False; property GroupIndex: Integer read FGroupIndex write SetGroupIndex default 0; property NumGlyphs: TNumGlyphs read FNumGlyphs write SetNumGlyphs default 1;


event OnDblClick :


event OnDragDrop :


event OnDragOVer :


event OnEndDrag :


event OnMouseDown :


event OnMouseMove :


event OnMouseUp :


event OnStartDrag :


Variables


FBriImage : TBitmap;


FCaptionChanged : Boolean;


FDarkness : Integer;


FDeepth : TDeepth;


FDeepth2 : TDeepth;


FDisabled : TBitmap;


FImage : TBitmap;


FMouseDown : Boolean;


FMouseFocused : Boolean;

FAllowAllUp : Boolean;


FShadow : Boolean;

Private Declarations } // FGroupIndex : Integer; // FLayout : TButtonLayout;


FShowMouseFocus : Boolean;


FSImage : TBitmap;


FSpace : Integer;


FTrans : TColor;


TMPBMP : TBitmap;