cxcustomtablevieweditor.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,118 行 · 第 1/3 页
PAS
1,118 行
AItem := CreateViewItem(View);
UpdateColumnList;
ListBoxSelectByObject(LBColumns, AItem);
LBColumnsClick(nil);
UpdateDesigner;
end;
procedure TcxCustomTableViewEditor.BColumnAddMissingClick(Sender: TObject);
begin
DoCreateViewItems(True);
end;
procedure TcxCustomTableViewEditor.BColumnDeleteClick(Sender: TObject);
begin
if LBColumns.SelCount > 0 then
begin
BeginUpdate;
try
ListBoxDeleteSelection(LBColumns, True);
UpdateColumnList;
LBColumnsClick(nil);
UpdateDesigner;
finally
EndUpdate;
end;
end;
end;
procedure TcxCustomTableViewEditor.BColumnRestoreClick(Sender: TObject);
var
I: Integer;
begin
if LBColumns.SelCount > 0 then
try
for I := 0 to LBColumns.Items.Count - 1 do
if LBColumns.Selected[I] then
TcxCustomGridTableItem(LBColumns.Items.Objects[I]).RestoreDefaults;
finally
UpdateColumnList;
LBColumnsClick(nil);
UpdateDesigner;
end;
end;
procedure TcxCustomTableViewEditor.BColumnMoveUpClick(Sender: TObject);
begin
FColumnsPrevDragIndex := -1;
ListBoxMoveUpItems(LBColumns, FColumnsPrevDragIndex, ReindexColumnsProc);
end;
procedure TcxCustomTableViewEditor.BColumnMoveDownClick(Sender: TObject);
begin
FColumnsPrevDragIndex := -1;
ListBoxMoveDownItems(LBColumns, FColumnsPrevDragIndex, ReindexColumnsProc);
end;
procedure TcxCustomTableViewEditor.BColumnAddAllClick(Sender: TObject);
begin
if View.ItemCount > 0 then
case Application.MessageBox(PChar(GetDeleteItemsCaption),
'Confirm', MB_YESNOCANCEL) of
IDYES:
View.ClearItems;
IDCANCEL:
Exit;
end;
DoCreateViewItems(False);
end;
procedure TcxCustomTableViewEditor.MIColumnSelectAllClick(Sender: TObject);
begin
SelectAllColumns;
LBColumnsClick(nil);
end;
// Summary - Footer
procedure TcxCustomTableViewEditor.LBFooterSummaryClick(Sender: TObject);
begin
FormEditor.ListBoxApplySelection(LBFooterSummary, FooterSummaryItems);
end;
procedure TcxCustomTableViewEditor.BAddFooterSummaryItemClick(
Sender: TObject);
begin
CollectionItemsAdd(LBFooterSummary, FooterSummaryItems);
end;
procedure TcxCustomTableViewEditor.BDeleteFooterSummaryItemClick(
Sender: TObject);
begin
CollectionItemsDelete(LBFooterSummary, FooterSummaryItems);
end;
// Summary - Default Group
procedure TcxCustomTableViewEditor.LBDefaultGroupsSummaryClick(
Sender: TObject);
begin
FormEditor.ListBoxApplySelection(LBDefaultGroupsSummary, DefaultGroupSummaryItems);
end;
procedure TcxCustomTableViewEditor.BDefaultGroupSummaryAddClick(Sender: TObject);
begin
CollectionItemsAdd(LBDefaultGroupsSummary, DefaultGroupSummaryItems);
end;
procedure TcxCustomTableViewEditor.BDefaultGroupSummaryDeleteClick(
Sender: TObject);
begin
CollectionItemsDelete(LBDefaultGroupsSummary, DefaultGroupSummaryItems);
end;
// Summary - Groups
procedure TcxCustomTableViewEditor.LBSummaryGroupsClick(Sender: TObject);
begin
FormEditor.ListBoxApplySelection(LBSummaryGroups, SummaryGroups);
end;
procedure TcxCustomTableViewEditor.BSummaryGroupAddClick(Sender: TObject);
begin
CollectionItemsAdd(LBSummaryGroups, SummaryGroups);
end;
procedure TcxCustomTableViewEditor.BSummaryGroupDeleteClick(
Sender: TObject);
begin
CollectionItemsDelete(LBSummaryGroups, SummaryGroups);
end;
// Summary - Selected Group
procedure TcxCustomTableViewEditor.LBGroupSummaryItemsClick(
Sender: TObject);
begin
if GetCurrentGroup <> nil then
FormEditor.ListBoxApplySelection(LBGroupSummaryItems, GetCurrentGroup.SummaryItems);
end;
procedure TcxCustomTableViewEditor.BGroupSummaryItemAddClick(
Sender: TObject);
begin
if GetCurrentGroup <> nil then
CollectionItemsAdd(LBGroupSummaryItems, GetCurrentGroup.SummaryItems);
end;
procedure TcxCustomTableViewEditor.BGroupSummaryItemDeleteClick(
Sender: TObject);
begin
if GetCurrentGroup <> nil then
CollectionItemsDelete(LBGroupSummaryItems, GetCurrentGroup.SummaryItems);
end;
procedure TcxCustomTableViewEditor.LBUnlinkedColumnsClick(Sender: TObject);
begin
UpdateButtons;
end;
procedure TcxCustomTableViewEditor.BColumnLinkClick(Sender: TObject);
var
ACurrentGroup: TcxDataSummaryGroup;
I: Integer;
AGroupItemLink: TcxDataSummaryGroupItemLink;
begin
BeginUpdate;
try
ACurrentGroup := GetCurrentGroup;
for I := 0 to LBUnlinkedColumns.Items.Count - 1 do
if LBUnlinkedColumns.Selected[I] then
begin
AGroupItemLink := ACurrentGroup.Links.Add;
AGroupItemLink.ItemLink := LBUnlinkedColumns.Items.Objects[I];
end;
UpdateSummaryGroupLinks;
UpdateDesigner;
finally
EndUpdate;
end;
end;
procedure TcxCustomTableViewEditor.BColumnUnlinkClick(Sender: TObject);
var
ACurrentGroup: TcxDataSummaryGroup;
I: Integer;
AGroupItemLink: TcxDataSummaryGroupItemLink;
begin
BeginUpdate;
try
ACurrentGroup := GetCurrentGroup;
for I := LBLinkedColumns.Items.Count - 1 downto 0 do
if LBLinkedColumns.Selected[I] then
begin
AGroupItemLink := ACurrentGroup.Links.ItemOfItemLink(LBLinkedColumns.Items.Objects[I]);
AGroupItemLink.Free;
end;
UpdateSummaryGroupLinks;
UpdateDesigner;
finally
EndUpdate;
end;
end;
procedure TcxCustomTableViewEditor.PLinksResize(Sender: TObject);
var
W: Integer;
begin
W := (PLinks.Width - PLinkUnlink.Width) div 2;
PUnlinkedColumns.Width := W;
PLinkedColumns.Width := W;
end;
procedure TcxCustomTableViewEditor.PSummaryGroupsResize(Sender: TObject);
var
W: Integer;
begin
// Groups
W := (PSummaryGroups.Width - PGSeparator.Width) div 2;
PGroups.Width := W;
PGroupItems.Width := W;
end;
// Drag Drop Columns
procedure TcxCustomTableViewEditor.LBColumnsStartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
FColumnsPrevDragIndex := -1;
end;
procedure TcxCustomTableViewEditor.LBColumnsDragOver(Sender,
Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
ListBoxDragOver(LBColumns, Sender, Source, X, Y, State, Accept, FColumnsPrevDragIndex);
end;
procedure TcxCustomTableViewEditor.LBColumnsEndDrag(Sender,
Target: TObject; X, Y: Integer);
begin
ListBoxEndDrag(LBColumns, Sender, Target, X, Y, FColumnsPrevDragIndex);
end;
procedure TcxCustomTableViewEditor.LBColumnsDragDrop(Sender,
Source: TObject; X, Y: Integer);
begin
ListBoxDragDrop(LBColumns, Sender, Source, X, Y, FColumnsPrevDragIndex, ReindexColumnsProc);
end;
// Summary: Select All
procedure TcxCustomTableViewEditor.MIFooterSummarySelectAllClick(
Sender: TObject);
begin
ListBoxSelectAll(LBFooterSummary);
LBFooterSummaryClick(nil);
end;
procedure TcxCustomTableViewEditor.MIDefaultGroupSummarySelectAllClick(
Sender: TObject);
begin
ListBoxSelectAll(LBDefaultGroupsSummary);
LBDefaultGroupsSummaryClick(nil);
end;
procedure TcxCustomTableViewEditor.MISummaryGroupSelectAllClick(
Sender: TObject);
begin
ListBoxSelectAll(LBSummaryGroups);
LBSummaryGroupsClick(nil);
end;
procedure TcxCustomTableViewEditor.MIGroupSummaryItemsSelectAllClick(
Sender: TObject);
begin
ListBoxSelectAll(LBGroupSummaryItems);
LBGroupSummaryItemsClick(nil);
end;
procedure TcxCustomTableViewEditor.FormCreate(Sender: TObject);
begin
inherited;
CalculateListBoxItemHeight(LBColumns);
end;
procedure TcxCustomTableViewEditor.LBColumnsDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
DrawListBoxItem(Control, Index, Rect);
end;
{ TcxCustomGridTableViewMenuProvider }
function TcxCustomGridTableViewMenuProvider.GetGridView: TcxCustomGridTableView;
begin
Result := TcxCustomGridTableView(inherited GridView);
end;
function TcxCustomGridTableViewMenuProvider.GetViewItemNameValue: string;
begin
Result := GetViewItemName(GridView);
end;
function TcxCustomGridTableViewMenuProvider.CanDeleteItems: Boolean;
var
I: Integer;
begin
Result := GridView.ItemCount <> 0;
if Result then
for I := 0 to GridView.ItemCount - 1 do
begin
Result := CanDeleteComponent(GridView.Items[I].Owner, GridView.Items[I]);
if not Result then Break;
end;
end;
procedure TcxCustomGridTableViewMenuProvider.CreateAllItems(Sender: TcxGridViewMenuItem);
begin
CreateViewItems(GridView, False);
DesignerModified;
end;
procedure TcxCustomGridTableViewMenuProvider.CreateItem(Sender: TcxGridViewMenuItem);
begin
ObjectCreated(CreateViewItem(GridView));
end;
procedure TcxCustomGridTableViewMenuProvider.CreateMissingItems(Sender: TcxGridViewMenuItem);
begin
CreateViewItems(GridView, True);
DesignerModified;
end;
procedure TcxCustomGridTableViewMenuProvider.DeleteAllItems(Sender: TcxGridViewMenuItem);
begin
(GridView.DataController as IcxCustomGridDataController).DeleteAllItems;
DesignerModified;
end;
procedure TcxCustomGridTableViewMenuProvider.InitStructureCreationItems;
begin
if (GridView.DataController as IcxCustomGridDataController).SupportsCreateAllItems then
if (GridView.DataController as IcxCustomGridDataController).IsDataLinked then
begin
Items.AddItem(Format('Create All %ss', [ViewItemName]), CreateAllItems,
CanAddComponent(GridView.Owner));
Items.AddItem(Format('Create Missing %ss', [ViewItemName]), CreateMissingItems,
CanAddComponent(GridView.Owner) and not (GridView.DataController as IcxCustomGridDataController).HasAllItems);
end
else
Items.AddItem('(no data linked)', nil, False);
Items.AddItem(Format('Create %s', [ViewItemName]), CreateItem, CanAddComponent(GridView.Owner));
end;
procedure TcxCustomGridTableViewMenuProvider.InitStructureItems;
begin
InitStructureCreationItems;
Items.AddSeparator;
if (GridView.DataController as IcxCustomGridDataController).SupportsCreateAllItems then
Items.AddItem(Format('Delete All %ss', [ViewItemName]), DeleteAllItems, CanDeleteItems);
inherited;
end;
initialization
RegisterViewEditorClass(TcxCustomGridTableView, TcxCustomTableViewEditor);
RegisterViewMenuProviderClass(TcxCustomGridTableView, TcxCustomGridTableViewMenuProvider);
finalization
UnregisterViewMenuProviderClass(TcxCustomGridTableView, TcxCustomGridTableViewMenuProvider);
UnregisterViewEditorClass(TcxCustomGridTableView, TcxCustomTableViewEditor);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?