filtcomp.pas
来自「delphi编程控件」· PAS 代码 · 共 1,794 行 · 第 1/4 页
PAS
1,794 行
unit filtcomp;
(*
COPYRIGHT (c) RSD software 1997 - 98
All Rights Reserved.
*)
{$I aclver.inc}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, afilter, DB, ExtCtrls, DBCtrls, aflookup, Mask, aimctrls, adbcombo,
aDateCtl, aTimeCtl;
type
{$I aclver.inc}
TEasyFilter = class(TComponent)
private
FAutoFilter : TAutoFilter;
FValue : String;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
procedure SetValue(Value : String);
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property Value : String read FValue write SetValue;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TCheckBoxFilter = class(TCustomCheckBox)
private
FValueChecked : String;
FValueUnChecked : String;
SaveChecked : Boolean;
FAutoFilter : TAutoFilter;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
procedure SetValueChecked(Value : String);
procedure SetValueUnChecked(Value : String);
procedure ReadSaveChecked(Reader: TReader);
procedure WriteSaveChecked(Writer: TWriter);
protected
procedure WndProc(var Message: TMessage); override;
procedure DefineProperties(Filer: TFiler); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property Alignment;
property AllowGrayed;
property Caption;
property Checked;
property Color;
property Ctl3D;
property DragCursor;
property DragMode;
property Enabled;
property Font;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property ValueChecked : String read FValueChecked write SetValueChecked;
property ValueUnChecked : String read FValueUnChecked write SetValueUnChecked;
property Visible;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnClick;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDrag;
end;
TRadioGroupFilter = class(TRadioGroup)
private
FItems : TStrings;
OldItemIndex : Integer;
FAutoFilter : TAutoFilter;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetItems(Value: TStrings);
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
procedure ItemsChanged(Sender: TObject);
procedure ChangeAutoFilterValue;
protected
procedure WndProc(var Message: TMessage); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
published
property Items : TStrings read FItems write SetItems;
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TListBoxFilter = class(TListBox)
private
FItems : TStrings;
OldItemIndex : Integer;
FAutoFilter : TAutoFilter;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetItems(Value: TStrings);
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
procedure ItemsChanged(Sender: TObject);
procedure ChangeAutoFilterValue;
protected
procedure WndProc(var Message: TMessage); override;
procedure KeyPress(var Key: Char); override;
procedure Click; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property Items : TStrings read FItems write SetItems;
property ItemIndex;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TComboBoxFilter = class(TComboBox)
private
FItems : TStrings;
OldItemIndex : Integer;
FAutoFilter : TAutoFilter;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetItems(Value: TStrings);
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
procedure ItemsChanged(Sender: TObject);
procedure ChangeAutoFilterValue;
protected
procedure WndProc(var Message: TMessage); override;
procedure KeyPress(var Key: Char); override;
procedure Click; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property Items : TStrings read FItems write SetItems;
property ItemIndex;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TRefreshType = (rtOnChange, rtonExit);
TMaskEditFilter = class(TMaskEdit)
private
FAutoFilter : TAutoFilter;
FRefreshType : TRefreshType;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
procedure CMExit(var Message: TCMExit); message CM_EXIT;
protected
procedure Change; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property RefreshType : TRefreshType read FRefreshType write FRefreshType;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TLookupListFilter = class(TAutoCustomLookupList)
private
FAutoFilter : TAutoFilter;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
protected
procedure KeyValueChanged; override;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property ItemIndex;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TLookupComboFilter = class(TAutoCustomLookupCombo)
private
FAutoFilter : TAutoFilter;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
protected
procedure KeyValueChanged; override;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property ItemIndex;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TImageListBoxFilter = class(TAutoCustomImageListBox)
private
FAutoFilter : TAutoFilter;
FUseValues : Boolean;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
procedure SetItems(Value: TStrings);
procedure SetUseValues(Value: Boolean);
procedure UpdateData;
procedure CMExit(var Message: TCMExit); message CM_EXIT;
protected
procedure Click; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property Items write SetItems;
property UseValues : Boolean read FUseValues write SetUseValues;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TImageComboBoxFilter = class(TAutoImageComboBox)
private
FAutoFilter : TAutoFilter;
FUseValues : Boolean;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
procedure SetItems(Value: TStrings);
procedure SetUseValues(Value: Boolean);
procedure UpdateData;
procedure CMExit(var Message: TCMExit); message CM_EXIT;
protected
procedure Click; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property Items write SetItems;
property UseValues : Boolean read FUseValues write SetUseValues;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TSpinImageFilter = class(TAutoCustomSpinImage)
private
FAutoFilter : TAutoFilter;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
procedure UpdateData;
protected
procedure Change; override;
procedure UpdateItems; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
property Align;
property Color;
property Ctl3D;
property DragCursor;
property DragMode;
property Enabled;
property Font;
property ParentColor default False;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop default True;
property Visible;
property OnClick;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDrag;
end;
TAutoDBComboBoxFilter = class(TAutoCustomDBComboBox)
private
FAutoFilter : TAutoFilter;
function GetOnBeforeFilterChange : TNotifyEvent;
function GetOnAfterFilterChange : TNotifyEvent;
procedure SetOnBeforeFilterChange(Value : TNotifyEvent);
procedure SetOnAfterFilterChange(Value : TNotifyEvent);
protected
procedure Change; override;
procedure Click; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property AutoFilter : TAutoFilter read FAutoFilter write FAutoFilter;
property OnBeforeFilterChange: TNotifyEvent read GetOnBeforeFilterChange write SetOnBeforeFilterChange;
property OnAfterFilterChange: TNotifyEvent read GetOnAfterFilterChange write SetOnAfterFilterChange;
end;
TDateControlFilter = class(TCustomAutoDateControl)
private
FDateFilter : TAutoFilter;
FBeginDateFilter : TAutoFilter;
FEndDateFilter : TAutoFilter;
function GetOnBeforeDateFilterChange : TNotifyEvent;
function GetOnAfterDateFilterChange : TNotifyEvent;
function GetOnBeforeBeginDateFilterChange : TNotifyEvent;
function GetOnAfterBeginDateFilterChange : TNotifyEvent;
function GetOnBeforeEndDateFilterChange : TNotifyEvent;
function GetOnAfterEndDateFilterChange : TNotifyEvent;
procedure SetOnBeforeDateFilterChange(Value : TNotifyEvent);
procedure SetOnAfterDateFilterChange(Value : TNotifyEvent);
procedure SetOnBeforeBeginDateFilterChange(Value : TNotifyEvent);
procedure SetOnAfterBeginDateFilterChange(Value : TNotifyEvent);
procedure SetOnBeforeEndDateFilterChange(Value : TNotifyEvent);
procedure SetOnAfterEndDateFilterChange(Value : TNotifyEvent);
protected
procedure DoDateChange; override;
procedure DoBeginDateChange; override;
procedure DoEndDateChange; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DateFilter : TAutoFilter read FDateFilter write FDateFilter;
property BeginDateFilter : TAutoFilter read FBeginDateFilter write FBeginDateFilter;
property EndDateFilter : TAutoFilter read FEndDateFilter write FEndDateFilter;
property OnBeforeDateFilterChange: TNotifyEvent read GetOnBeforeDateFilterChange
write SetOnBeforeDateFilterChange;
property OnAfterDateFilterChange: TNotifyEvent read GetOnAfterDateFilterChange
write SetOnAfterDateFilterChange;
property OnBeforeBeginDateFilterChange: TNotifyEvent read GetOnBeforeBeginDateFilterChange
write SetOnBeforeBeginDateFilterChange;
property OnAfterBeginDateFilterChange: TNotifyEvent read GetOnAfterBeginDateFilterChange
write SetOnAfterBeginDateFilterChange;
property OnBeforeEndDateFilterChange: TNotifyEvent read GetOnBeforeEndDateFilterChange
write SetOnBeforeEndDateFilterChange;
property OnEndAfterDateFilterChange: TNotifyEvent read GetOnAfterEndDateFilterChange
write SetOnAfterEndDateFilterChange;
{ Property SelectPeriod must be first. }
property SelectPeriod;
property Align;
property BeginDate;
property Date;
property DragCursor;
property DragMode;
property Enabled;
property EndDate;
property Font;
{$IFDEF DELPHI3_0}
property ImeMode;
property ImeName;
{$ENDIF}
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property StartOfWeek;
property TabOrder;
property TabStop;
property Visible;
property OnDateChange;
property OnBeginDateChange;
property OnEndDateChange;
property OnClick;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnEnter;
property OnExit;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?