📄 ieditorbasiccomponents.pas
字号:
{*******************************************************}
{ }
{ Iocomp Editor Basic Components }
{ }
{ Copyright (c) 1997,2003 Iocomp Software }
{ }
{*******************************************************}
{$I iInclude.inc}
{$ifdef iVCL}unit iEditorBasicComponents;{$endif}
{$ifdef iCLX}unit QiEditorBasicComponents;{$endif}
interface
uses
{$I iIncludeUses.inc}
{$IFDEF iVCL} iTypes, iCheckBox, iRadioGroup, iGPFunctions, iColorDialog, iFontDialog, iOpenDialog, iSaveDialog;{$ENDIF}
{$IFDEF iCLX} QiTypes, QiCheckBox, QiRadioGroup, QiGPFunctions; {$ENDIF}
type
TiValueConverterPageType = (ivcptInterval, ivcptDateTime, ivcptPrice32nd);
TFormTranslationMethod = procedure (AForm: TCustomForm) of object;
TiListBoxGetDataEvent = procedure(const Index: Integer; var DrawColorBox : Boolean; var AColor : TColor; var AText : String) of object;
//****************************************************************************
TiCustomEditorForm = class(TCustomForm)
public
procedure UserChange; virtual;
property FormStyle;
published
property Caption;
property ClientHeight;
property ClientWidth;
property PixelsPerInch;
property OnCreate;
property OnDestroy;
property OnClose;
property AutoScroll;
end;
//****************************************************************************
TiComponentEditorEdit = class(TCustomEdit)
private
FBlockingEvents : Boolean;
FOriginalText : String;
FOnUpdate : TNotifyEvent;
function GetAsInteger : Integer;
function GetAsString : String;
function GetAsFloat : Double;
function GetAsDateTime : Double;
procedure SetAsInteger (const Value: Integer);
procedure SetAsString (const Value: String);
procedure SetAsFloat (const Value: Double);
procedure SetAsDateTime(const Value: Double);
protected
procedure KeyPress(var Key: Char); override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure DoUpdate;
procedure DoEnter; override;
procedure DoExit; override;
{$ifdef iVCL}procedure SetEnabled( Value: Boolean); override;{$endif}
{$ifdef iCLX}procedure SetEnabled(const Value: Boolean); override;{$endif}
{$ifdef iVCL}procedure WMKillFocus (var Message: TMessage );message WM_KILLFOCUS; {$endif}
{$ifdef iVCL}procedure WMGetDLGCode (var Message: TMessage );message WM_GETDLGCODE; {$endif}
{$ifdef iVCL}procedure CMWantSpecialKey(var Message: TCMWantSpecialKey);message CM_WANTSPECIALKEY;{$endif}
{$ifdef iVCL}procedure CreateParams(var Params: TCreateParams); override;{$endif}
public
constructor Create(AOwner: TComponent); override;
procedure Disable;
procedure DisableNoClear;
procedure Enable;
procedure SetStringWithEvent (Value : String);
procedure SetIntegerWithEvent(Value : Integer);
procedure SetDoubleWithEvent (Value : Double );
property AsInteger : Integer read GetAsInteger write SetAsInteger;
property AsString : String read GetAsString write SetAsString;
property AsFloat : Double read GetAsFloat write SetAsFloat;
property AsDateTime : Double read GetAsDateTime write SetAsDateTime;
property Color;
published
property OnUpdate : TNotifyEvent read FOnUpdate write FOnUpdate;
property TabOrder;
property ReadOnly;
property Height default 21;
property Visible;
end;
//****************************************************************************
TiUpDown = class(TGraphicControl)
private
FTimer : TTimer;
FFirstTimerMessage : Boolean;
FAssociate : TiComponentEditorEdit;
FMin : SmallInt;
FMax : SmallInt;
FIncrement : Integer;
FMouseDown : Boolean;
FMouseDownX : Integer;
FMouseDownY : Integer;
FUpButtonPressed : Boolean;
FDownButtonPressed : Boolean;
FUpButtonRect : TRect;
FDownButtonRect : TRect;
FUserGenerated : Boolean;
function GetPosition: Integer;
procedure SetPosition (const Value: Integer);
procedure SetAssociate(const Value: TiComponentEditorEdit);
procedure SetMax (const Value: SmallInt);
procedure SetMin (const Value: SmallInt);
procedure SetIncrement(const Value: Integer);
function GetAsInteger: Integer;
procedure SetAsInteger(const Value: Integer);
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure DrawButton(DrawRect : TRect; ShowDown : Boolean);
procedure CalcButtons;
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;
procedure TimerEvent(Sender: TObject);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Paint; override;
procedure Disable;
procedure Enable;
property AsInteger : Integer read GetAsInteger write SetAsInteger;
published
property Associate : TiComponentEditorEdit read FAssociate write SetAssociate;
property Min : SmallInt read FMin write SetMin default 0;
property Max : SmallInt read FMax write SetMax default 100;
property Increment : Integer read FIncrement write SetIncrement default 1;
property Width default 15;
property Height default 21;
end;
//****************************************************************************
TiComponentEditorPageControl = class(TPageControl)
private
FTabIndex : Integer;
protected
{$IFDEF iVCL}procedure WMGetDLGCode(var Message: TMessage); message WM_GETDLGCODE;{$endif}
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override;{$endif}
procedure KeyPress(var Key: Char); override;
published
property TabIndex : Integer read FTabIndex write FTabIndex;
end;
//****************************************************************************
TiComponentEditorButton = class(TButton)
protected
procedure KeyPress(var Key: Char); override;
{$ifdef iVCL} procedure WMGetDLGCode(var Message: TMessage); message WM_GETDLGCODE; {$endif}
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override;{$endif}
procedure DoEnter; override;
end;
//****************************************************************************
TiComponentEditorCheckBox = class(TiCheckBox)
private
FBlockingEvents : Boolean;
function GetAsBoolean: Boolean;
procedure SetAsBoolean(const Value: Boolean);
protected
procedure KeyPress(var Key: Char); override;
{$IFDEF iVCL}procedure WMGetDLGCode(var Message: TMessage); message WM_GETDLGCODE;{$endif}
procedure DoEnter; override;
procedure DoChange; override;
public
constructor Create(AOwner: TComponent); override;
procedure Disable;
procedure Enable;
property AsBoolean : Boolean read GetAsBoolean write SetAsBoolean;
end;
//****************************************************************************
TiComponentEditorRadioGroup = class(TiRadioGroup)
private
FBlockingEvents : Boolean;
protected
function GetAsInteger: Integer;
procedure SetAsInteger(const Value: Integer);
procedure KeyPress(var Key: Char); override;
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override;{$endif}
procedure DoEnter; override;
public
constructor Create(AOwner: TComponent); override;
procedure Click; override;
procedure Disable;
procedure Enable;
property AsInteger : Integer read GetAsInteger write SetAsInteger;
end;
//****************************************************************************
TiComponentEditorMemo = class(TMemo)
private
FOriginalText : String;
FBlockingEvents : Boolean;
FOnUpdate : TNotifyEvent;
protected
function GetAsString: String;
procedure SetAsString(const Value: String);
procedure KeyPress(var Key: Char); override;
procedure DoUpdate;
{$ifdef iVCL}procedure WMGetDLGCode(var Message: TMessage); message WM_GETDLGCODE;{$endif}
{$ifdef iVCL}procedure WMKillFocus (var Message: TMessage); message WM_KILLFOCUS; {$endif}
public
constructor Create(AOwner: TComponent); override;
procedure Disable;
procedure Enable;
property AsString : String read GetAsString write SetAsString;
published
property OnUpdate : TNotifyEvent read FOnUpdate write FOnUpdate;
end;
//****************************************************************************
TiComponentEditorComboBox = class(TComboBox)
private
FBlockingEvents : Boolean;
protected
function GetAsInteger: Integer;
function GetAsString : String;
procedure SetAsInteger(const Value: Integer);
procedure SetAsString (const Value: String);
procedure KeyPress(var Key: Char); override;
{$IFDEF iVCL}procedure WMGetDLGCode (var Message: TMessage); message WM_GETDLGCODE; {$endif}
{$ifdef iVCL}procedure CMWantSpecialKey(var Message: TCMWantSpecialKey);message CM_WANTSPECIALKEY;{$endif}
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override; {$endif}
procedure DoEnter; override;
public
constructor Create(AOwner: TComponent); override;
procedure Click; override;
procedure Disable;
procedure Enable;
property AsInteger : Integer read GetAsInteger write SetAsInteger;
property AsString : String read GetAsString write SetAsString;
published
property Visible;
end;
//****************************************************************************
TiComponentEditorListBox = class(TCustomListBox)
private
FOnGetData : TiListBoxGetDataEvent;
FOnItemMove : TNotifyEvent;
protected
{$ifdef iVCL}procedure DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); override;{$endif}
{$ifdef iCLX}function DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState): Boolean; override;{$endif}
procedure DragOver(Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); override;
{$ifdef iVCL}procedure CNCommand (var Message: TWMCommand); message CN_COMMAND; {$endif}
{$ifdef iVCL}procedure WMGetDLGCode(var Message: TMessage ); message WM_GETDLGCODE;{$endif}
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override; {$endif}
{$IFDEF iVCL}procedure CreateWnd; override; {$endif}
procedure KeyPress(var Key: Char); override;
procedure DoEnter; override;
public
constructor Create(AOwner: TComponent); override;
procedure DragDrop(Source: TObject; X, Y: Integer); override;
procedure SelectLast;
procedure DeleteSelectedObject;
procedure DeleteObjectIndex(AObject: TObject);
property Items;
published
property Enabled;
property Font;
property TabOrder;
property TabStop;
property Visible;
property OnClick;
property OnDblClick;
property Style default lbOwnerDrawFixed;
property Sorted default False;
property OnGetData : TiListBoxGetDataEvent read FOnGetData write FOnGetData;
property OnItemMove : TNotifyEvent read FOnItemMove write FOnItemMove;
property OnDrawItem;
property DragMode default dmAutomatic;
end;
//****************************************************************************
TiComponentEditorColorPicker = class(TCustomControl)
private
FButton : TButton;
FColor : TColor;
FOnChange : TNotifyEvent;
procedure SetColor(const Value: TColor);
protected
{$IFDEF iVCL}procedure OpenVCL;{$endif}
{$IFDEF iCLX}procedure OpenCLX;{$endif}
procedure ButtonClick(Sender: TObject);
procedure Paint; override;
procedure DblClick; override;
procedure KeyPress(var Key: Char); override;
{$IFDEF iVCL}procedure WMGetDLGCode(var Message: TMessage); message WM_GETDLGCODE;{$endif}
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override; {$endif}
procedure DoEnter; override;
public
constructor Create(AOwner: TComponent); override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
procedure Disable;
procedure Enable;
property Color : TColor read FColor write SetColor;
published
property OnChange : TNotifyEvent read FOnChange write FOnChange;
property TabOrder;
end;
//****************************************************************************
TiComponentEditorComputerPicker = class(TiComponentEditorButton)
private
FComputerName : String;
FOnChange : TNotifyEvent;
public
constructor Create(AOwner: TComponent); override;
procedure Click; override;
published
property OnChange : TNotifyEvent read FOnChange write FOnChange;
property ComputerName : String read FComputerName write FComputerName;
end;
//****************************************************************************
TiComponentEditorFontPicker = class(TiComponentEditorButton)
private
FFont : TFont;
FOnChange : TNotifyEvent;
protected
{$IFDEF iVCL}procedure OpenVCL;{$endif}
{$IFDEF iCLX}procedure OpenCLX;{$endif}
procedure SetFont(const Value: TFont);
procedure KeyPress(var Key: Char); override;
{$IFDEF iVCL}procedure WMGetDLGCode(var Message: TMessage); message WM_GETDLGCODE;{$endif}
procedure DoEnter; override;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -