cxgridheaderpopupmenuitems.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 651 行 · 第 1/2 页
PAS
651 行
{********************************************************************}
{ }
{ Developer Express Visual Component Library }
{ ExpressQuantumGrid Utils }
{ }
{ Copyright (c) 1998-2008 Developer Express Inc. }
{ ALL RIGHTS RESERVED }
{ }
{ The entire contents of this file is protected by U.S. and }
{ International Copyright Laws. Unauthorized reproduction, }
{ reverse-engineering, and distribution of all or any portion of }
{ the code contained in this file is strictly prohibited and may }
{ result in severe civil and criminal penalties and will be }
{ prosecuted to the maximum extent possible under the law. }
{ }
{ RESTRICTIONS }
{ }
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
{ LICENSED TO DISTRIBUTE THE EXPRESSQUANTUMGRID AND ALL }
{ ACCOMPANYING VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. }
{ }
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
{ }
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
{ ADDITIONAL RESTRICTIONS. }
{ }
{********************************************************************}
unit cxGridHeaderPopupMenuItems;
{$I cxVer.inc}
interface
uses
Classes, cxGridMenuOperations;
type
TcxGridHeaderPopupMenuOperation = class(TcxGridTableColumnMenuOperation);
TcxGridSortingMenuOperation = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetVisible: Boolean; override;
function IsSorted: Boolean;
end;
TcxGridSortColumn = class(TcxGridSortingMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetDown: Boolean; override;
function GetEnabled: Boolean; override;
end;
TcxGridSortColumnAsc = class(TcxGridSortColumn)
protected
function GetImageResourceName: string; override;
public
constructor Create; override;
end;
TcxGridSortColumnDesc = class(TcxGridSortColumn)
protected
function GetImageResourceName: string; override;
public
constructor Create; override;
end;
TcxGridClearSorting = class(TcxGridSortingMenuOperation)
protected
function GetEnabled: Boolean; override;
public
constructor Create; override;
end;
TcxGridGroupByThisField = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetCaption: string; override;
function GetEnabled: Boolean; override;
function GetImageResourceName: string; override;
function GetVisible: Boolean; override;
public
constructor Create; override;
end;
TcxGridGroupByBox = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetDown: Boolean; override;
function GetImageResourceName: string; override;
function GetVisible: Boolean; override;
public
constructor Create; override;
end;
TcxGridAlignmentSubMenu = class(TcxGridHeaderPopupMenuOperation)
protected
function GetVisible: Boolean; override;
public
constructor Create; override;
end;
TcxGridAlign = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetDown: Boolean; Override;
function GetEnabled: Boolean; override;
public
class function GetParentOperationClass: TcxGridPopupMenuOperationClass; override;
end;
TcxGridAlignLeft = class(TcxGridAlign)
protected
function GetImageResourceName: string; override;
public
constructor Create; override;
end;
TcxGridAlignRight = class(TcxGridAlign)
protected
function GetImageResourceName: string; override;
public
constructor Create; override;
end;
TcxGridAlignCenter = class(TcxGridAlign)
protected
function GetImageResourceName: string; override;
public
constructor Create; override;
end;
TcxGridBestFit = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetEnabled: Boolean; override;
function GetImageResourceName: string; override;
function GetVisible: Boolean; override;
public
constructor Create; override;
end;
TcxGridBestFitAllColumns = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetVisible: Boolean; override;
public
constructor Create; override;
end;
TcxGridRemoveColumn = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetVisible: Boolean; override;
public
constructor Create; override;
end;
TcxGridFieldChooser = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetDown: Boolean; override;
function GetImageResourceName: string; override;
public
constructor Create; override;
end;
TcxGridShowFooter = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetDown: Boolean; Override;
function GetImageResourceName: string; override;
public
constructor Create; override;
end;
TcxGridShowGroupFooter = class(TcxGridHeaderPopupMenuOperation)
protected
procedure Execute(Sender: TObject); override;
function GetDown: Boolean; override;
function GetEnabled: Boolean; override;
function GetImageResourceName: string; override;
function GetVisible: Boolean; override;
public
constructor Create; override;
end;
TcxGridHeaderPopupMenuOperations = class(TcxGridPopupMenuOperations)
protected
procedure AddItems; override;
end;
implementation
uses
cxCustomData, cxEdit, cxGridCustomTableView, cxGridTableView, cxGridPopupMenuConsts;
const
AImageName = 'HdrImg';
{ TcxGridSortingMenuOperation }
procedure TcxGridSortingMenuOperation.Execute(Sender: TObject);
begin
if IsSorted then
HitGridView.DataController.ClearSorting(True);
end;
function TcxGridSortingMenuOperation.GetVisible: Boolean;
begin
Result := HitGridView.OptionsCustomize.ColumnSorting;
end;
function TcxGridSortingMenuOperation.IsSorted: Boolean;
var
I: Integer;
begin
Result := False;
with HitGridView do
if SortedItemCount > 0 then
for I := 0 to SortedItemCount - 1 do
if TcxCustomGridTableItemAccess.GetGroupIndex(SortedItems[I]) = -1 then
begin
Result := True;
Break;
end;
end;
{ TcxGridSortColumn }
procedure TcxGridSortColumn.Execute(Sender: TObject);
var
ASortOrder: TcxDataSortOrder;
begin
HitGridView.BeginUpdate;
try
inherited;
case Tag of
0: ASortOrder := soAscending;
1: ASortOrder := soDescending;
else
ASortOrder := soNone;
end;
HitColumn.SortOrder := ASortOrder;
finally
HitGridView.EndUpdate;
end;
end;
function TcxGridSortColumn.GetDown: Boolean;
begin
if Tag = 0 then
Result := HitColumn.SortOrder = soAscending
else
Result := HitColumn.SortOrder = soDescending;
end;
function TcxGridSortColumn.GetEnabled: Boolean;
begin
Result := TcxCustomGridTableItemAccess.CanSort(HitColumn);
end;
{ TcxGridSortColumnAsc }
constructor TcxGridSortColumnAsc.Create;
begin
inherited;
ResCaption := @cxSGridSortColumnAsc;
Tag := 0;
end;
function TcxGridSortColumnAsc.GetImageResourceName: string;
begin
Result := AImageName + '1';
end;
{ TcxGridSortColumnDesc }
constructor TcxGridSortColumnDesc.Create;
begin
inherited;
ResCaption := @cxSGridSortColumnDesc;
Tag := 1;
end;
function TcxGridSortColumnDesc.GetImageResourceName: string;
begin
Result := AImageName + '2';
end;
{ TcxGridClearSorting }
constructor TcxGridClearSorting.Create;
begin
inherited;
ResCaption := @cxSGridClearSorting;
end;
function TcxGridClearSorting.GetEnabled: Boolean;
begin
Result := IsSorted;
end;
{ TcxGridGroupBy }
constructor TcxGridGroupByThisField.Create;
begin
inherited;
ResCaption := @cxSGridGroupByThisField;
end;
procedure TcxGridGroupByThisField.Execute(Sender: TObject);
var
AGroupIndex: Integer;
begin
HitGridView.BeginUpdate;
try
HitGridView.OptionsView.GroupByBox := True;
if HitColumn.GroupIndex <> -1 then
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?