git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@31 05c56307-c608-d34a-929d-697000501d7a
220 lines
6.3 KiB
ObjectPascal
220 lines
6.3 KiB
ObjectPascal
unit ViewBandedDemoMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, Classes, Graphics, Controls, Forms,
|
|
Dialogs, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView,
|
|
cxGridDBBandedTableView, cxControls, cxGridCustomView, StdCtrls, Menus,
|
|
cxGridLevel, cxGrid, ActnList, ImgList, cxLookAndFeels,
|
|
ComCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter,
|
|
cxData, cxEdit, cxClasses, cxListBox, cxDataStorage, DB, cxDBData,
|
|
cxImageComboBox, cxDBLookupComboBox, cxCalendar;
|
|
|
|
type
|
|
TViewBandedDemoMainForm = class(TForm)
|
|
glItems: TcxGridLevel;
|
|
cxGrid: TcxGrid;
|
|
btvItems: TcxGridDBBandedTableView;
|
|
btvItemsNAME: TcxGridDBBandedColumn;
|
|
btvItemsTYPE: TcxGridDBBandedColumn;
|
|
btvItemsPROJECTID: TcxGridDBBandedColumn;
|
|
btvItemsPRIORITY: TcxGridDBBandedColumn;
|
|
btvItemsSTATUS: TcxGridDBBandedColumn;
|
|
btvItemsCREATEDDATE: TcxGridDBBandedColumn;
|
|
btvItemsFIXEDDATE: TcxGridDBBandedColumn;
|
|
btvItemsDESCRIPTION: TcxGridDBBandedColumn;
|
|
btvItemsOwnerName: TcxGridDBBandedColumn;
|
|
btvItemsCreatorName: TcxGridDBBandedColumn;
|
|
mmMain: TMainMenu;
|
|
miFile: TMenuItem;
|
|
miExit: TMenuItem;
|
|
miOptions: TMenuItem;
|
|
miAbout: TMenuItem;
|
|
ilMain: TImageList;
|
|
lbDescrip: TLabel;
|
|
sbMain: TStatusBar;
|
|
btvItemsCreatorPhone: TcxGridDBBandedColumn;
|
|
btvItemsOwnerPhone: TcxGridDBBandedColumn;
|
|
miShowPreviewRow: TMenuItem;
|
|
miBandMoving: TMenuItem;
|
|
miBandSizing: TMenuItem;
|
|
miDeleteBand: TMenuItem;
|
|
miCreateBand: TMenuItem;
|
|
miColumnsCustomization: TMenuItem;
|
|
N1: TMenuItem;
|
|
miShowNavigator: TMenuItem;
|
|
LookAndFeelController: TcxLookAndFeelController;
|
|
procedure miAboutClick(Sender: TObject);
|
|
procedure miExitClick(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure miShowPreviewRowClick(Sender: TObject);
|
|
procedure miBandMovingClick(Sender: TObject);
|
|
procedure miBandSizingClick(Sender: TObject);
|
|
procedure miColumnsCustomizationClick(Sender: TObject);
|
|
procedure miCreateBandClick(Sender: TObject);
|
|
procedure miDeleteBandClick(Sender: TObject);
|
|
procedure miShowNavigatorClick(Sender: TObject);
|
|
private
|
|
procedure DeleteBand(ABandCaption: String);
|
|
function GetBandByCaption(ABandCaption: String): TcxGridBand;
|
|
protected
|
|
procedure UpdateButtons;
|
|
end;
|
|
|
|
var
|
|
ViewBandedDemoMainForm: TViewBandedDemoMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses
|
|
ViewBandedDemoData, ViewBandeDemoBands, AboutDemoForm;
|
|
|
|
procedure TViewBandedDemoMainForm.miAboutClick(Sender: TObject);
|
|
begin
|
|
ShowAboutDemoForm;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.miExitClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.FormShow(Sender: TObject);
|
|
begin
|
|
TcxGridDBBandedTableView(cxGrid.FocusedView).DataController.Groups.FullExpand;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.miShowPreviewRowClick(
|
|
Sender: TObject);
|
|
begin
|
|
if btvItems.Preview.Visible then
|
|
begin
|
|
btvItems.Preview.Visible := False;
|
|
btvItems.Preview.Column := nil;
|
|
end
|
|
else
|
|
begin
|
|
//btvItemsDESCRIPTION.Visible := False;
|
|
btvItems.Preview.Column := btvItemsDESCRIPTION;
|
|
btvItems.Preview.Visible := True;
|
|
end;
|
|
(Sender as TMenuItem).Checked := btvItems.Preview.Visible;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.miBandMovingClick(Sender: TObject);
|
|
begin
|
|
with btvItems.OptionsCustomize do
|
|
BandMoving := not BandMoving;
|
|
(Sender as TMenuItem).Checked := btvItems.OptionsCustomize.BandMoving;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.miBandSizingClick(Sender: TObject);
|
|
begin
|
|
with btvItems.OptionsCustomize do
|
|
BandSizing := not BandSizing;
|
|
(Sender as TMenuItem).Checked := btvItems.OptionsCustomize.BandSizing;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.DeleteBand(ABandCaption: String);
|
|
begin
|
|
GetBandByCaption(ABandCaption).Free;
|
|
end;
|
|
|
|
function TViewBandedDemoMainForm.GetBandByCaption(ABandCaption: String): TcxGridBand;
|
|
var
|
|
i: Integer;
|
|
begin
|
|
Result := nil;
|
|
for i := 0 to btvItems.Bands.Count - 1 do
|
|
if btvItems.Bands[i].Caption = ABandCaption then
|
|
begin
|
|
Result := btvItems.Bands[i];
|
|
Exit;
|
|
end;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.UpdateButtons;
|
|
begin
|
|
miDeleteBand.Enabled := btvItems.Bands.Count <> 0;
|
|
miShowPreviewRow.Enabled := btvItems.Bands.Count <> 0;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.miColumnsCustomizationClick(Sender: TObject);
|
|
begin
|
|
btvItems.Controller.Customization := True;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.miCreateBandClick(Sender: TObject);
|
|
var
|
|
BandCaption: String;
|
|
ABand: TcxGridBand;
|
|
ABandViewInfo: TcxGridbandViewInfo;
|
|
begin
|
|
if InputQuery('Create band', 'Specify a caption of the band', BandCaption) then
|
|
if GetBandByCaption(BandCaption) <> nil then
|
|
MessageDlg('Band with this caption already exists', mtWarning, [mbOK], 0)
|
|
else
|
|
begin
|
|
ABand := btvItems.Bands.Add;
|
|
ABand.Caption := BandCaption;
|
|
ABandViewInfo :=
|
|
btvItems.ViewInfo.HeaderViewInfo.BandsViewInfo[ABand.VisibleIndex];
|
|
btvItems.Controller.LeftPos := ABandViewInfo.Bounds.Right;
|
|
end;
|
|
UpdateButtons;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.miDeleteBandClick(Sender: TObject);
|
|
|
|
procedure HideCoulmns;
|
|
var
|
|
j: Integer;
|
|
begin
|
|
for j:=0 to btvItems.ColumnCount - 1 do
|
|
if (btvItems.Columns[j].Position.Band = nil) and btvItems.Columns[j].Visible then
|
|
btvItems.Columns[j].Visible := False;
|
|
end;
|
|
|
|
procedure AddBands(AStringList: TStrings);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
for i:=0 to btvItems.Bands.Count - 1 do
|
|
AStringList.Add(btvItems.Bands[i].Caption);
|
|
end;
|
|
|
|
procedure RemoveBands(AListBox: TcxListBox);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
for i:=0 to AListBox.Items.Count - 1 do
|
|
if AListBox.Selected[i] then
|
|
DeleteBand(AListBox.Items[i]);
|
|
HideCoulmns;
|
|
end;
|
|
|
|
begin
|
|
with TViewBandeDemoBandsForm.Create(nil) do
|
|
try
|
|
lbBands.Items.Clear;
|
|
AddBands(lbBands.Items);
|
|
if ShowModal = mrOK then
|
|
RemoveBands(lbBands);
|
|
finally
|
|
Free;
|
|
end;
|
|
UpdateButtons;
|
|
end;
|
|
|
|
procedure TViewBandedDemoMainForm.miShowNavigatorClick(Sender: TObject);
|
|
begin
|
|
with Sender as TMenuItem do
|
|
Checked := not Checked;
|
|
btvItems.OptionsView.Navigator := (Sender as TMenuItem).Checked;
|
|
end;
|
|
|
|
end.
|