filtcomp.pas
来自「delphi编程控件」· PAS 代码 · 共 1,794 行 · 第 1/4 页
PAS
1,794 行
begin
inherited Click;
UpdateData;
end;
procedure TImageComboBoxFilter.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited KeyDown(Key, Shift);
if Key in [VK_PRIOR, VK_NEXT, VK_END, VK_HOME, VK_LEFT, VK_UP,
VK_RIGHT, VK_DOWN] then
UpdateData;
end;
procedure TImageComboBoxFilter.KeyPress(var Key: Char);
begin
inherited KeyPress(Key);
UpdateData;
end;
procedure TImageComboBoxFilter.CMExit(var Message: TCMExit);
begin
UpdateData;
inherited;
end;
procedure TImageComboBoxFilter.SetItems(Value: TStrings);
begin
Items.Assign(Value);
UpdateData;
end;
procedure TImageComboBoxFilter.SetUseValues(Value: Boolean);
begin
if(FUseValues <> Value)then begin
FUseValues := Value;
UpdateData;
end;
end;
{TSpinImageFilter}
constructor TSpinImageFilter.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FAutoFilter := TAutoFilter.Create(self);
DefaultImages := False;
end;
destructor TSpinImageFilter.Destroy;
begin
FAutoFilter.Free;
inherited;
end;
function TSpinImageFilter.GetOnBeforeFilterChange : TNotifyEvent;
begin
Result := FAutoFilter.OnBeforeChange;
end;
function TSpinImageFilter.GetOnAfterFilterChange : TNotifyEvent;
begin
Result := FAutoFilter.OnAfterChange;
end;
procedure TSpinImageFilter.SetOnBeforeFilterChange(Value : TNotifyEvent);
begin
FAutoFilter.OnBeforeChange := Value;
end;
procedure TSpinImageFilter.SetOnAfterFilterChange(Value : TNotifyEvent);
begin
FAutoFilter.OnAfterChange := Value;
end;
procedure TSpinImageFilter.UpdateData;
begin
if ItemIndex >= 0 then begin
if DefaultImages then
AutoFilter.Value := IntToStr(ItemIndex)
else AutoFilter.Value := Items[ItemIndex].Value;
end else begin
if DefaultImages then
AutoFilter.Value := '-1'
else AutoFilter.Value := '';
end;
end;
procedure TSpinImageFilter.UpdateItems;
begin
if Not (csLoading in ComponentState) then
UpdateData;
end;
procedure TSpinImageFilter.Change;
begin
if Not (csLoading in ComponentState) then
UpdateData;
inherited Change;
end;
{TAutoDBComboBoxFilter}
constructor TAutoDBComboBoxFilter.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FAutoFilter := TAutoFilter.Create(self);
end;
destructor TAutoDBComboBoxFilter.Destroy;
begin
FAutoFilter.Free;
inherited;
end;
function TAutoDBComboBoxFilter.GetOnBeforeFilterChange : TNotifyEvent;
begin
Result := FAutoFilter.OnBeforeChange;
end;
function TAutoDBComboBoxFilter.GetOnAfterFilterChange : TNotifyEvent;
begin
Result := FAutoFilter.OnAfterChange;
end;
procedure TAutoDBComboBoxFilter.SetOnBeforeFilterChange(Value : TNotifyEvent);
begin
FAutoFilter.OnBeforeChange := Value;
end;
procedure TAutoDBComboBoxFilter.SetOnAfterFilterChange(Value : TNotifyEvent);
begin
FAutoFilter.OnAfterChange := Value;
end;
procedure TAutoDBComboBoxFilter.Change;
begin
FAutoFilter.Value := GetComboText;
end;
procedure TAutoDBComboBoxFilter.Click;
begin
FAutoFilter.Value := GetComboText;
end;
const
NullDate = -700000;
{TDateControlFilter}
function GetFilterStrDate(ADate : TDateTime) : String;
begin
Result := DateToStr(ADate);
if(Pos('/', ShortDateFormat) > 0) then
Result := '''' + Result + '''';
end;
constructor TDateControlFilter.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FDateFilter := TAutoFilter.Create(self);
FDateFilter.Name := 'Date';
FBeginDateFilter := TAutoFilter.Create(self);
FBeginDateFilter.Name := 'BeginDate';
FEndDateFilter := TAutoFilter.Create(self);
FEndDateFilter.Name := 'EndDate';
end;
destructor TDateControlFilter.Destroy;
begin
FDateFilter.Free;
FBeginDateFilter.Free;
FEndDateFilter.Free;
inherited;
end;
function TDateControlFilter.GetOnBeforeDateFilterChange : TNotifyEvent;
begin
Result := FDateFilter.OnBeforeChange;
end;
function TDateControlFilter.GetOnAfterDateFilterChange : TNotifyEvent;
begin
Result := FDateFilter.OnAfterChange;
end;
function TDateControlFilter.GetOnBeforeBeginDateFilterChange : TNotifyEvent;
begin
Result := FBeginDateFilter.OnBeforeChange;
end;
function TDateControlFilter.GetOnAfterBeginDateFilterChange : TNotifyEvent;
begin
Result := FBeginDateFilter.OnAfterChange;
end;
function TDateControlFilter.GetOnBeforeEndDateFilterChange : TNotifyEvent;
begin
Result := FEndDateFilter.OnBeforeChange;
end;
function TDateControlFilter.GetOnAfterEndDateFilterChange : TNotifyEvent;
begin
Result := FEndDateFilter.OnAfterChange;
end;
procedure TDateControlFilter.SetOnBeforeDateFilterChange(Value : TNotifyEvent);
begin
FDateFilter.OnBeforeChange := Value;
end;
procedure TDateControlFilter.SetOnAfterDateFilterChange(Value : TNotifyEvent);
begin
FDateFilter.OnAfterChange := Value;
end;
procedure TDateControlFilter.SetOnBeforeBeginDateFilterChange(Value : TNotifyEvent);
begin
FBeginDateFilter.OnBeforeChange := Value;
end;
procedure TDateControlFilter.SetOnAfterBeginDateFilterChange(Value : TNotifyEvent);
begin
FBeginDateFilter.OnAfterChange := Value;
end;
procedure TDateControlFilter.SetOnBeforeEndDateFilterChange(Value : TNotifyEvent);
begin
FEndDateFilter.OnBeforeChange := Value;
end;
procedure TDateControlFilter.SetOnAfterEndDateFilterChange(Value : TNotifyEvent);
begin
FEndDateFilter.OnAfterChange := Value;
end;
procedure TDateControlFilter.DoDateChange;
begin
if(Date <> NullDate) And (FDateFilter <> Nil) then
FDateFilter.Value := GetFilterStrDate(Date);
inherited DoDateChange;
end;
procedure TDateControlFilter.DoBeginDateChange;
begin
if(BeginDate <> NullDate) And (FBeginDateFilter <> Nil) then
FBeginDateFilter.Value := GetFilterStrDate(BeginDate);
inherited DoBeginDateChange;
end;
procedure TDateControlFilter.DoEndDateChange;
begin
if(EndDate <> NullDate) And (FEndDateFilter <> Nil) then
FEndDateFilter.Value := GetFilterStrDate(EndDate);
inherited DoEndDateChange;
end;
{TDateFilter}
constructor TDateFilter.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FDateFilter := TAutoFilter.Create(self);
FDateFilter.Name := 'Date';
FBeginDateFilter := TAutoFilter.Create(self);
FBeginDateFilter.Name := 'BeginDate';
FEndDateFilter := TAutoFilter.Create(self);
FEndDateFilter.Name := 'EndDate';
end;
destructor TDateFilter.Destroy;
begin
FDateFilter.Free;
FBeginDateFilter.Free;
FEndDateFilter.Free;
inherited;
end;
function TDateFilter.GetOnBeforeDateFilterChange : TNotifyEvent;
begin
Result := FDateFilter.OnBeforeChange;
end;
function TDateFilter.GetOnAfterDateFilterChange : TNotifyEvent;
begin
Result := FDateFilter.OnAfterChange;
end;
function TDateFilter.GetOnBeforeBeginDateFilterChange : TNotifyEvent;
begin
Result := FBeginDateFilter.OnBeforeChange;
end;
function TDateFilter.GetOnAfterBeginDateFilterChange : TNotifyEvent;
begin
Result := FBeginDateFilter.OnAfterChange;
end;
function TDateFilter.GetOnBeforeEndDateFilterChange : TNotifyEvent;
begin
Result := FEndDateFilter.OnBeforeChange;
end;
function TDateFilter.GetOnAfterEndDateFilterChange : TNotifyEvent;
begin
Result := FEndDateFilter.OnAfterChange;
end;
procedure TDateFilter.SetOnBeforeDateFilterChange(Value : TNotifyEvent);
begin
FDateFilter.OnBeforeChange := Value;
end;
procedure TDateFilter.SetOnAfterDateFilterChange(Value : TNotifyEvent);
begin
FDateFilter.OnAfterChange := Value;
end;
procedure TDateFilter.SetOnBeforeBeginDateFilterChange(Value : TNotifyEvent);
begin
FBeginDateFilter.OnBeforeChange := Value;
end;
procedure TDateFilter.SetOnAfterBeginDateFilterChange(Value : TNotifyEvent);
begin
FBeginDateFilter.OnAfterChange := Value;
end;
procedure TDateFilter.SetOnBeforeEndDateFilterChange(Value : TNotifyEvent);
begin
FEndDateFilter.OnBeforeChange := Value;
end;
procedure TDateFilter.SetOnAfterEndDateFilterChange(Value : TNotifyEvent);
begin
FEndDateFilter.OnAfterChange := Value;
end;
procedure TDateFilter.DoDateChange;
begin
if(Date <> NullDate) And (FDateFilter <> Nil) then
FDateFilter.Value := GetFilterStrDate(Date);
inherited DoDateChange;
end;
procedure TDateFilter.DoBeginDateChange;
begin
if(BeginDate <> NullDate) And (FBeginDateFilter <> Nil) then
FBeginDateFilter.Value := GetFilterStrDate(BeginDate);
inherited DoBeginDateChange;
end;
procedure TDateFilter.DoEndDateChange;
begin
if(EndDate <> NullDate) And (FEndDateFilter <> Nil) then
FEndDateFilter.Value := GetFilterStrDate(EndDate);
inherited DoEndDateChange;
end;
{TTimeControlFilter}
constructor TTimeControlFilter.Create(AOwner : TComponent);
begin
inherited;
FAutoFilter := TAutoFilter.Create(self);
with FAutoFilter do begin
TextBefore := '''';
TextAfter := '''';
end;
end;
destructor TTimeControlFilter.Destroy;
begin
FAutoFilter.Free;
inherited;
end;
function TTimeControlFilter.GetOnBeforeFilterChange : TNotifyEvent;
begin
Result := FAutoFilter.OnBeforeChange;
end;
function TTimeControlFilter.GetOnAfterFilterChange : TNotifyEvent;
begin
Result := FAutoFilter.OnAfterChange;
end;
procedure TTimeControlFilter.SetOnBeforeFilterChange(Value : TNotifyEvent);
begin
FAutoFilter.OnBeforeChange := Value;
end;
procedure TTimeControlFilter.SetOnAfterFilterChange(Value : TNotifyEvent);
begin
FAutoFilter.OnAfterChange := Value;
end;
procedure TTimeControlFilter.DoTimeChange;
begin
if(FAutoFilter <> Nil) then
FAutoFilter.Value := TimeToStr(Time);
inherited DoTimeChange;
end;
{TTimeEditFilter}
constructor TTimeEditFilter.Create(AOwner : TComponent);
begin
inherited;
FAutoFilter := TAutoFilter.Create(self);
with FAutoFilter do begin
TextBefore := '''';
TextAfter := '''';
end;
end;
destructor TTimeEditFilter.Destroy;
begin
FAutoFilter.Free;
inherited;
end;
function TTimeEditFilter.GetOnBeforeFilterChange : TNotifyEvent;
begin
Result := FAutoFilter.OnBeforeChange;
end;
function TTimeEditFilter.GetOnAfterFilterChange : TNotifyEvent;
begin
Result := FAutoFilter.OnAfterChange;
end;
procedure TTimeEditFilter.SetOnBeforeFilterChange(Value : TNotifyEvent);
begin
FAutoFilter.OnBeforeChange := Value;
end;
procedure TTimeEditFilter.SetOnAfterFilterChange(Value : TNotifyEvent);
begin
FAutoFilter.OnAfterChange := Value;
end;
procedure TTimeEditFilter.DoTimeChange;
begin
if(FAutoFilter <> Nil) then
FAutoFilter.Value := TimeToStr(Time);
inherited DoTimeChange;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?