home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 26
/
CD_ASCQ_26_1295.iso
/
vrac
/
psslider.zip
/
SLIDER.INT
< prev
next >
Wrap
Text File
|
1995-06-06
|
8KB
|
207 lines
unit Slider;
{This is the source of the Slider component of the Perseus VCP. If you purchase
at least 2 copies of this component you'll receive it with your registered
version!
Copyright ⌐ 1995: Sebastian Modersohn
Softwaredevelopment
Heinestrasse 20
D 15370 Petershagen
Phone: ++49 33439 7462
CIS ID: 100340,1474
Written by: Sebastian Modersohn
The source is nearly undocumented, so if you have questions to details, just
contact us via CompuServe and we'll help you (if we can <g>).}
{$DEFINE UNREGISTERED}
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Buttons,
Face, PSCCtl;
type
TFrame = (None, Raised, Lowered);
TOrientation = (Horizontal, Vertical);
TThumbStyle = (PointerUp, PointerDown, Rect, Square, OwnerDraw);
TScalePosition = (AboveOrLeft, BelowOrRight, Both);
TScaleOrig = (Inner, Outer);
TFocusAction = (faNone, faFocusRect, faFocusColor, faBoth);
TThumbDrawEvent = procedure (Sender: TObject; Canvas: TCanvas) of object;
TThumb = class(TGraphicControl)
private
RetainPos: Integer;
ScaleLength: Integer;
bPressed: Boolean;
constructor Create(AOwner: TComponent); override;
protected
procedure Paint; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
end;
TSlider = class(TPSCustomControl)
private
RetainValue: Integer;
bScrolling: Byte;{ 0=none; 1=up; 2=down}
ThumbPos: Integer;
OThumb: TThumb;
FFocusAction: TFocusAction;
FFrame: TFrame;
FFrameStyle: TFaceStyle;
FFrameSize: Byte;
FOrientation: TOrientation;
FGroove: TFrame;
FGrooveStyle: TFaceStyle;
FGrooveSize: Byte;
FGrooveFill: Boolean;
FGrooveColor: TColor;
FThumb: TThumbStyle;
FThumbSize: Byte;
FThumbStyle: TFaceStyle;
FThumbFill: Boolean;
FThumbColor: TColor;
FMin, FMax, FStep, FCur: Integer;
FScale: Boolean;
FTicks: Byte;
FEnlarge: Byte;
FScaleHeight: Byte;
FConnect: Boolean;
FScaleOrig: TScaleOrig;
FScaleColor: TColor;
FScalePosition: TScalePosition;
FScaleDistance: Integer;
FDisabledColor: TColor;
FFocusColor: TColor;
EOnSelect: TNotifyEvent;
EOnTrack: TNotifyEvent;
EOnDrawThumb: TThumbDrawEvent;
public
constructor Create(AOwner: TComponent); override;
protected
procedure Paint; override;
procedure DrawThumb;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure WMTimer(var Message: TWMTimer); message WM_Timer;
procedure WMGetDlgCode(var Message: TMessage); message WM_GetDlgCode;
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SetFocus;
procedure WMKillFocus(var Message: TWMKillFocus); message WM_KillFocus;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
private
function CreateThumb: TThumb;
procedure AdjustThumbSize(var Thumb: TThumb);
procedure CalcThumbPos;
procedure SetThumbPos;
procedure SetThumbByTimer(Check: boolean);
procedure CalcSize(var Message: TMessage); message wm_Size;
procedure SetFocusAction(Value: TFocusAction);
procedure SetDisabledColor(Value: TColor);
procedure SetFocusColor(Value: TColor);
procedure SetFrame(Value: TFrame);
procedure SetFrameStyle(Value: TFaceStyle);
procedure SetFrameSize(Value: Byte);
procedure SetOrientation(Value: TOrientation);
procedure SetGroove(Value: TFrame);
procedure SetGrooveStyle(Value: TFaceStyle);
procedure SetGrooveSize(Value: Byte);
procedure SetGrooveFill(Value: Boolean);
procedure SetGrooveColor(Value: TColor);
procedure SetThumb(Value: TThumbStyle);
procedure SetThumbSize(Value: Byte);
procedure SetThumbStyle(Value: TFaceStyle);
procedure SetThumbFill(Value: Boolean);
procedure SetThumbColor(Value: TColor);
procedure SetMin(Value: Integer);
procedure SetMax(Value: Integer);
procedure SetStep(Value: Integer);
procedure SetCur(Value: Integer);
procedure SetScale(Value: Boolean);
procedure SetTicks(Value: Byte);
procedure SetEnlarge(Value: Byte);
procedure SetScaleHeight(Value: Byte);
procedure SetScaleConnect(Value: Boolean);
procedure SetScaleOrig(Value: TScaleOrig);
procedure SetScaleColor(Value: TColor);
procedure SetScalePosition(Value: TScalePosition);
procedure SetScaleDistance(Value: Integer);
published
property ShowHint;
property ParentShowHint;
property Color;
property ParentColor default True;
property TabStop default True;
property DragCursor;
property DragMode;
property FocusAction: TFocusAction read FFocusAction write SetFocusAction default faFocusRect;
property Frame: TFrame read FFrame write SetFrame default Lowered;
property FrameStyle: TFaceStyle read FFrameStyle write SetFrameStyle default fsWin95;
property FrameSize: Byte read FFrameSize write SetFrameSize default 5;
property Orientation: TOrientation read FOrientation write SetOrientation default Horizontal;
property Groove: TFrame read FGroove write SetGroove default Lowered;
property GrooveStyle: TFaceStyle read FGrooveStyle write SetGrooveStyle default fsWin95;
property GrooveSize: Byte read FGrooveSize write SetGrooveSize default 6;
property GrooveFill: Boolean read FGrooveFill write SetGrooveFill default True;
property GrooveColor: TColor read FGrooveColor write SetGrooveColor default clBtnFace;
property Thumb: TThumbStyle read FThumb write SetThumb default PointerDown;
property ThumbSize: Byte read FThumbSize write SetThumbSize default 25;
property ThumbStyle: TFaceStyle read FThumbStyle write SetThumbStyle default fsWin95;
property ThumbFill: Boolean read FThumbFill write SetThumbFill default True;
property ThumbColor: TColor read FThumbColor write SetThumbColor default clBtnFace;
property Position: Integer read FCur write SetCur default 0;
property PositionMin: Integer read FMin write SetMin default 0;
property PositionMax: Integer read FMax write SetMax default 100;
property PositionStep: Integer read FStep write SetStep default 1;
property Scale: Boolean read FScale write SetScale default True;
property ScaleTicks: Byte read FTicks write SetTicks default 10;
property ScaleTicksEnlargeEvery: Byte read FEnlarge write SetEnlarge default 5;
property ScaleHeight: Byte read FScaleHeight write SetScaleHeight default 7;
property ScaleConnect: Boolean read FConnect write SetScaleConnect default True;
property ScaleOrig: TScaleOrig read FScaleOrig write SetScaleOrig default Outer;
property ScaleColor: TColor read FScaleColor write SetScaleColor default clBlack;
property ScalePosition: TScalePosition read FScalePosition write SetScalePosition default BelowOrRight;
property ScaleDistance: Integer read FScaleDistance write SetScaleDistance default 10;
property DisabledColor: TColor read FDisabledColor write SetDisabledColor default clGrayText;
property FocusColor: TColor read FFocusColor write SetFocusColor default clActiveCaption;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnSelect: TNotifyEvent read EOnSelect write EOnSelect;
property OnTrack: TNotifyEvent read EOnTrack write EOnTrack;
property OnDrawThumb: TThumbDrawEvent read EOnDrawThumb write EOnDrawThumb;
end;
procedure Register;
implementation