Componentes.Terceros.DevExp.../official/x.30/ExpressPivotGrid/Demos/Delphi/StylesMultiDemo/StylesMultiMain.pas
2007-12-16 17:06:54 +00:00

457 lines
14 KiB
ObjectPascal

unit StylesMultiMain;
{$I ..\cxVer.inc}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, DemoBasicMain, cxControls, cxCustomPivotGrid, cxDBPivotGrid,
cxLookAndFeels, Menus, StdCtrls, DemoBasicDM, cxLookAndFeelPainters,
ExtCtrls, cxListBox, cxGroupBox, cxRadioGroup, cxButtons, cxContainer,
cxEdit, cxStyles, cxPivotGridPredefinedStyles, cxClasses,
cxStyleSheetEditor, cxPivotGridStyleSheetsPreview, cxGraphics,
cxCustomData;
type
TfrmStylesMulti = class(TfrmDemoBaisicMain)
DBPivotGrid: TcxDBPivotGrid;
pnlLeft: TPanel;
gbUserDefined: TcxGroupBox;
cbUserStyleSheets: TComboBox;
btnLoad: TcxButton;
btnSave: TcxButton;
btnEdit: TcxButton;
RadioGroup: TcxRadioGroup;
gbPredefined: TcxGroupBox;
lbPredefinedStyleSheets: TcxListBox;
pnlCurrentStyleSheet: TPanel;
Splitter: TSplitter;
PivotGridPurchaseDate: TcxDBPivotGridField;
PivotGridPaymentType: TcxDBPivotGridField;
PivotGridQuantity: TcxDBPivotGridField;
PivotGridCarName: TcxDBPivotGridField;
PivotGridUnitPrice: TcxDBPivotGridField;
PivotGridCompanyName: TcxDBPivotGridField;
PivotGridPaymentAmount: TcxDBPivotGridField;
srPredefined: TcxStyleRepository;
ClassicBackground: TcxStyle;
ClassicContent: TcxStyle;
ClassicHeader: TcxStyle;
ClassicInactive: TcxStyle;
ClassicSelection: TcxStyle;
cxStyle2: TcxStyle;
cxStyle3: TcxStyle;
cxStyle6: TcxStyle;
cxStyle10: TcxStyle;
cxStyle13: TcxStyle;
cxStyle14: TcxStyle;
cxStyle17: TcxStyle;
cxStyle21: TcxStyle;
cxStyle24: TcxStyle;
cxStyle25: TcxStyle;
cxStyle28: TcxStyle;
cxStyle32: TcxStyle;
cxStyle35: TcxStyle;
cxStyle36: TcxStyle;
cxStyle39: TcxStyle;
cxStyle43: TcxStyle;
cxStyle46: TcxStyle;
cxStyle47: TcxStyle;
cxStyle50: TcxStyle;
cxStyle54: TcxStyle;
cxStyle57: TcxStyle;
cxStyle58: TcxStyle;
cxStyle61: TcxStyle;
cxStyle65: TcxStyle;
cxStyle68: TcxStyle;
cxStyle69: TcxStyle;
cxStyle72: TcxStyle;
cxStyle76: TcxStyle;
cxStyle79: TcxStyle;
cxStyle80: TcxStyle;
cxStyle83: TcxStyle;
cxStyle87: TcxStyle;
cxStyle90: TcxStyle;
cxStyle91: TcxStyle;
cxStyle94: TcxStyle;
cxStyle98: TcxStyle;
cxStyle101: TcxStyle;
cxStyle102: TcxStyle;
cxStyle105: TcxStyle;
cxStyle109: TcxStyle;
cxStyle112: TcxStyle;
cxStyle113: TcxStyle;
cxStyle116: TcxStyle;
cxStyle120: TcxStyle;
cxStyle123: TcxStyle;
cxStyle124: TcxStyle;
cxStyle127: TcxStyle;
cxStyle131: TcxStyle;
cxStyle134: TcxStyle;
cxStyle135: TcxStyle;
cxStyle138: TcxStyle;
cxStyle142: TcxStyle;
cxStyle145: TcxStyle;
cxStyle146: TcxStyle;
cxStyle149: TcxStyle;
cxStyle153: TcxStyle;
cxStyle156: TcxStyle;
cxStyle157: TcxStyle;
cxStyle160: TcxStyle;
cxStyle164: TcxStyle;
cxStyle167: TcxStyle;
cxStyle168: TcxStyle;
cxStyle171: TcxStyle;
cxStyle175: TcxStyle;
cxStyle178: TcxStyle;
cxStyle179: TcxStyle;
cxStyle182: TcxStyle;
cxStyle186: TcxStyle;
cxStyle189: TcxStyle;
cxStyle190: TcxStyle;
cxStyle193: TcxStyle;
cxStyle197: TcxStyle;
cxStyle200: TcxStyle;
cxStyle201: TcxStyle;
cxStyle204: TcxStyle;
cxStyle208: TcxStyle;
cxStyle211: TcxStyle;
cxStyle212: TcxStyle;
cxStyle215: TcxStyle;
cxStyle219: TcxStyle;
cxStyle222: TcxStyle;
cxStyle223: TcxStyle;
cxStyle226: TcxStyle;
cxStyle230: TcxStyle;
cxStyle233: TcxStyle;
cxStyle234: TcxStyle;
cxStyle237: TcxStyle;
cxStyle241: TcxStyle;
cxStyle244: TcxStyle;
cxStyle245: TcxStyle;
cxStyle248: TcxStyle;
cxStyle252: TcxStyle;
cxStyle255: TcxStyle;
cxStyle256: TcxStyle;
cxStyle259: TcxStyle;
cxStyle263: TcxStyle;
cxStyle266: TcxStyle;
cxStyle267: TcxStyle;
cxStyle270: TcxStyle;
cxStyle274: TcxStyle;
cxStyle277: TcxStyle;
cxStyle278: TcxStyle;
cxStyle281: TcxStyle;
cxStyle285: TcxStyle;
cxStyle286: TcxStyle;
cxStyle288: TcxStyle;
cxStyle289: TcxStyle;
cxStyle292: TcxStyle;
cxStyle296: TcxStyle;
cxStyle297: TcxStyle;
cxStyle299: TcxStyle;
cxStyle300: TcxStyle;
cxStyle303: TcxStyle;
cxStyle307: TcxStyle;
cxStyle308: TcxStyle;
cxStyle310: TcxStyle;
cxStyle311: TcxStyle;
cxStyle314: TcxStyle;
cxStyle318: TcxStyle;
cxStyle319: TcxStyle;
cxStyle321: TcxStyle;
cxStyle322: TcxStyle;
cxStyle325: TcxStyle;
cxStyle329: TcxStyle;
cxStyle330: TcxStyle;
cxStyle332: TcxStyle;
cxStyle333: TcxStyle;
cxStyle336: TcxStyle;
cxStyle340: TcxStyle;
cxStyle341: TcxStyle;
cxStyle343: TcxStyle;
cxStyle344: TcxStyle;
cxStyle347: TcxStyle;
cxStyle351: TcxStyle;
cxStyle354: TcxStyle;
cxStyle355: TcxStyle;
cxStyle358: TcxStyle;
cxStyle362: TcxStyle;
PivotGridStyleSheetDevExpress: TcxPivotGridStyleSheet;
PivotGridStyleSheetUserFormat1: TcxPivotGridStyleSheet;
PivotGridStyleSheetUserFormat2: TcxPivotGridStyleSheet;
PivotGridStyleSheetUserFormat3: TcxPivotGridStyleSheet;
PivotGridStyleSheetUserFormat4: TcxPivotGridStyleSheet;
PivotGridStyleSheetBrick: TcxPivotGridStyleSheet;
PivotGridStyleSheetDesert: TcxPivotGridStyleSheet;
PivotGridStyleSheetEggplant: TcxPivotGridStyleSheet;
PivotGridStyleSheetLilac: TcxPivotGridStyleSheet;
PivotGridStyleSheetMaple: TcxPivotGridStyleSheet;
PivotGridStyleSheetMarinehighcolor: TcxPivotGridStyleSheet;
PivotGridStyleSheetPlumhighcolor: TcxPivotGridStyleSheet;
PivotGridStyleSheetPumpkinlarge: TcxPivotGridStyleSheet;
PivotGridStyleSheetRainyDay: TcxPivotGridStyleSheet;
PivotGridStyleSheetRedWhiteandBlueVGA: TcxPivotGridStyleSheet;
PivotGridStyleSheetRose: TcxPivotGridStyleSheet;
PivotGridStyleSheetRoselarge: TcxPivotGridStyleSheet;
PivotGridStyleSheetSlate: TcxPivotGridStyleSheet;
PivotGridStyleSheetSpruce: TcxPivotGridStyleSheet;
PivotGridStyleSheetStormVGA: TcxPivotGridStyleSheet;
PivotGridStyleSheetTealVGA: TcxPivotGridStyleSheet;
PivotGridStyleSheetWheat: TcxPivotGridStyleSheet;
PivotGridStyleSheetWindowsClassic: TcxPivotGridStyleSheet;
PivotGridStyleSheetWindowsClassiclarge: TcxPivotGridStyleSheet;
PivotGridStyleSheetWindowsStandard: TcxPivotGridStyleSheet;
PivotGridStyleSheetWindowsStandardlarge: TcxPivotGridStyleSheet;
PivotGridStyleSheetHighContrast1: TcxPivotGridStyleSheet;
PivotGridStyleSheetHighContrast1large: TcxPivotGridStyleSheet;
PivotGridStyleSheetHighContrast2: TcxPivotGridStyleSheet;
PivotGridStyleSheetHighContrast2large: TcxPivotGridStyleSheet;
PivotGridStyleSheetHighContrastBlack: TcxPivotGridStyleSheet;
PivotGridStyleSheetHighContrastBlacklarge: TcxPivotGridStyleSheet;
PivotGridStyleSheetHighContrastWhite: TcxPivotGridStyleSheet;
PivotGridStyleSheetHighContrastWhitelarge: TcxPivotGridStyleSheet;
OpenDialog: TOpenDialog;
SaveDialog1: TSaveDialog;
srUserDefined: TcxStyleRepository;
cxStyle378: TcxStyle;
cxStyle379: TcxStyle;
cxStyle380: TcxStyle;
cxStyle381: TcxStyle;
cxStyle382: TcxStyle;
cxStyle383: TcxStyle;
cxStyle384: TcxStyle;
cxStyle385: TcxStyle;
cxStyle386: TcxStyle;
cxStyle387: TcxStyle;
cxStyle388: TcxStyle;
cxStyle389: TcxStyle;
cxStyle390: TcxStyle;
cxStyle391: TcxStyle;
cxStyle392: TcxStyle;
cxStyle393: TcxStyle;
cxStyle394: TcxStyle;
cxStyle395: TcxStyle;
cxStyle396: TcxStyle;
cxStyle397: TcxStyle;
cxStyle398: TcxStyle;
cxStyle399: TcxStyle;
cxStyle400: TcxStyle;
cxStyle401: TcxStyle;
cxStyle402: TcxStyle;
cxStyle403: TcxStyle;
cxStyle404: TcxStyle;
cxStyle405: TcxStyle;
cxPivotGridStyleSheet1: TcxPivotGridStyleSheet;
cxPivotGridStyleSheet2: TcxPivotGridStyleSheet;
procedure FormCreate(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnLoadClick(Sender: TObject);
procedure RadioGroupClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure cbUserStyleSheetsChange(Sender: TObject);
procedure lbPredefinedStyleSheetsClick(Sender: TObject);
procedure btnEditClick(Sender: TObject);
protected
procedure ChangeVisibility(AType: Integer);
procedure ClearUserDefinedStyleSheets;
procedure CreatePredefinedStyleSheetsList;
procedure CreateUserStyleSheetsList;
function GetCurrentStyleSheet: TcxPivotGridStyleSheet;
procedure LoadUserDefinedStyleSheets(AFileName: TFileName);
procedure SaveUserDefinedStyleSheets(AFileName: TFileName);
procedure SetPredefinedStyleSheets;
procedure SetUserDefinedStyleSheets;
procedure UpdateGridStyleSheets(const AStyleSheet: TcxPivotGridStyleSheet);
function GetPivotGrid: TcxCustomPivotGrid; override;
public
{ Public declarations }
end;
var
frmStylesMulti: TfrmStylesMulti;
implementation
{$R *.dfm}
const
cNone = 0;
cPredefined = 1;
cUserDefined = 2;
function TfrmStylesMulti.GetPivotGrid: TcxCustomPivotGrid;
begin
Result := DBPivotGrid;
end;
procedure TfrmStylesMulti.CreateUserStyleSheetsList;
var
I: Integer;
begin
cbUserStyleSheets.Clear;
with srUserDefined do
begin
for I := 0 to StyleSheetCount - 1 do
cbUserStyleSheets.Items.AddObject(StyleSheets[I].Caption, StyleSheets[I]);
end;
cbUserStyleSheets.ItemIndex := 0;
end;
procedure TfrmStylesMulti.CreatePredefinedStyleSheetsList;
var
I: Integer;
begin
lbPredefinedStyleSheets.Clear;
with srPredefined do
begin
for I := 0 to StyleSheetCount - 1 do
lbPredefinedStyleSheets.Items.AddObject(StyleSheets[I].Caption, StyleSheets[I]);
end;
lbPredefinedStyleSheets.ItemIndex := 0;
end;
procedure TfrmStylesMulti.UpdateGridStyleSheets(const AStyleSheet: TcxPivotGridStyleSheet);
begin
if GetCurrentStyleSheet = AStyleSheet then
Exit;
PivotGrid.Styles.StyleSheet := AStyleSheet;
if AStyleSheet <> nil then
pnlCurrentStyleSheet.Caption := AStyleSheet.Caption
else
pnlCurrentStyleSheet.Caption := '';
end;
procedure TfrmStylesMulti.SetUserDefinedStyleSheets;
begin
with cbUserStyleSheets do
if Items.Count > 0 then
UpdateGridStyleSheets(TcxPivotGridStyleSheet(Items.Objects[ItemIndex]));
end;
procedure TfrmStylesMulti.SetPredefinedStyleSheets;
begin
with lbPredefinedStyleSheets do
if Items.Count > 0 then
UpdateGridStyleSheets(TcxPivotGridStyleSheet(Items.Objects[ItemIndex]));
end;
procedure TfrmStylesMulti.ChangeVisibility(AType: Integer);
begin
cbUserStyleSheets.Enabled := AType = cUserDefined;
gbUserDefined.Enabled := AType = cUserDefined;
btnEdit.Enabled := AType = cUserDefined;
btnLoad.Enabled := AType = cUserDefined;
btnSave.Enabled := AType = cUserDefined;
lbPredefinedStyleSheets.Enabled := AType = cPredefined;
end;
function TfrmStylesMulti.GetCurrentStyleSheet: TcxPivotGridStyleSheet;
begin
Result := TcxPivotGridStyleSheet(PivotGrid.Styles.StyleSheet);
end;
procedure TfrmStylesMulti.LoadUserDefinedStyleSheets(AFileName: TFileName);
begin
UpdateGridStyleSheets(nil);
ClearUserDefinedStyleSheets;
LoadStyleSheetsFromIniFile(AFileName, srUserDefined, TcxPivotGridStyleSheet);
CreateUserStyleSheetsList;
SetUserDefinedStyleSheets;
end;
procedure TfrmStylesMulti.SaveUserDefinedStyleSheets(AFileName: TFileName);
var
I: Integer;
AList: TList;
begin
AList := TList.Create;
try
for I := 0 to srUserDefined.StyleSheetCount - 1 do
AList.Add(srUserDefined.StyleSheets[I]);
SaveStyleSheetsToIniFile(AFileName, AList);
finally
AList.Free;
end;
end;
procedure TfrmStylesMulti.ClearUserDefinedStyleSheets;
begin
with srUserDefined do
begin
Clear;
ClearStyleSheets;
end;
end;
procedure TfrmStylesMulti.FormActivate(Sender: TObject);
begin
OpenDialog.InitialDir := ExtractFileDir(Application.ExeName);
SaveDialog1.InitialDir := OpenDialog.InitialDir;
PivotGridCarName.Area := faRow;
end;
procedure TfrmStylesMulti.cbUserStyleSheetsChange(
Sender: TObject);
begin
SetUserDefinedStyleSheets;
end;
procedure TfrmStylesMulti.lbPredefinedStyleSheetsClick(
Sender: TObject);
begin
SetPredefinedStyleSheets;
end;
procedure TfrmStylesMulti.btnEditClick(
Sender: TObject);
begin
with cbUserStyleSheets do
ShowcxStyleSheetEditor(TcxPivotGridStyleSheet(Items.Objects[ItemIndex]), nil);
end;
procedure TfrmStylesMulti.btnSaveClick(Sender: TObject);
begin
with SaveDialog1 do
if Execute then
SaveUserDefinedStyleSheets(FileName);
end;
procedure TfrmStylesMulti.btnLoadClick(Sender: TObject);
begin
with OpenDialog do
if Execute then
LoadUserDefinedStyleSheets(FileName);
end;
procedure TfrmStylesMulti.RadioGroupClick(Sender: TObject);
begin
case TcxRadioGroup(Sender).ItemIndex of
cNone:
UpdateGridStyleSheets(nil);
cPredefined:
SetPredefinedStyleSheets;
cUserDefined:
SetUserDefinedStyleSheets;
end;
ChangeVisibility(TcxRadioGroup(Sender).ItemIndex);
end;
procedure TfrmStylesMulti.FormCreate(Sender: TObject);
begin
lfController.NativeStyle := False;
lfController.Kind := lfUltraFlat;
CreateUserStyleSheetsList;
CreatePredefinedStyleSheetsList;
SetPredefinedStyleSheets;
end;
end.