git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@8 05c56307-c608-d34a-929d-697000501d7a
1056 lines
31 KiB
ObjectPascal
1056 lines
31 KiB
ObjectPascal
unit InPlaceEditorsDemoMain;
|
|
|
|
{$I ..\cxVer.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
|
|
{$IFDEF DELPHI6}
|
|
Variants,
|
|
{$ENDIF}
|
|
Dialogs, StdCtrls, ExtCtrls, cxClasses, cxControls, cxGraphics, cxStyles, dxBar,
|
|
dxBarExtItems, cxBarEditItem, dxRibbon, dxRibbonForm, cxEdit,
|
|
cxShellComboBox, cxDropDownEdit, cxBlobEdit, cxRadioGroup, cxCheckBox, cxLabel, cxTextEdit,
|
|
cxColorComboBox, cxImageComboBox, cxFontNameComboBox, cxCheckComboBox, cxSpinEdit, cxProgressBar,
|
|
cxTrackBar, cxTimeEdit, cxCalendar, cxCheckGroup, cxCurrencyEdit, cxCalc, cxMemo, cxRichEdit,
|
|
cxButtonEdit, cxHyperLinkEdit, cxMaskEdit, cxImage, cxDBLookupComboBox, cxMRUEdit, Db, DBTables, EBarsUtils,
|
|
ImgList;
|
|
|
|
const
|
|
DemoTabsCount = 6;
|
|
RibbonTabsCount = 9;
|
|
|
|
TabCaptions: array [0..RibbonTabsCount - 1] of string = ('Value Editors ', 'Multi-line Text Editors', 'Text Editors',
|
|
'Image Editors', 'Combo Boxes', 'Check Boxes & Groups', 'Styles', 'Ribbon options', 'Help');
|
|
|
|
SToolBarDescription = 'Edit values using bar editors and see the results below';
|
|
SDemoDescription = 'This demo illustrates the use of thirty different in-place editors from the ExpressEditors' +
|
|
' Library. The ExpressEditors Library is not a part of ExpressBars v6 and must be' +
|
|
' purchased separately. Select Help | About for more information.';
|
|
SRibbonOptionsDescription = 'Use these options to customize Ribbon control appearance settings and toggle the Ribbon UI on/off.';
|
|
SEditorStyles = 'Choose an in-place editor to be displayed by a TcxBarEdit item and apply different styles to the item''s caption and editor.';
|
|
SImageEditDescription = 'Load images in bar editors and see the results below';
|
|
SCheckBoxesDescription = SToolBarDescription;
|
|
SMultiLineTextEdits = SToolBarDescription;
|
|
SFileFindError = 'File %s not found';
|
|
|
|
type
|
|
TcxBaseFrameCategory = (bfcValueEditors, bfcMultilineTextEditors, bfcTextEditors,
|
|
bfcImageEditors, bfcComboBoxes, bfcCheckBoxes, bfcStyles, bfcRibbonOptions);
|
|
|
|
TfrmMain = class(TdxCustomRibbonForm)
|
|
BarManager: TdxBarManager;
|
|
lblSelectEditorsBarHeader: TdxBarStatic;
|
|
btnEditorStyles: TdxBarButton;
|
|
btnTextEdit: TdxBarButton;
|
|
btnMultilineTextEdits: TdxBarButton;
|
|
btnValueEdits: TdxBarButton;
|
|
tlbValueEdits: TdxBar;
|
|
tlbMultilineTextEdits: TdxBar;
|
|
tlbTextEdits: TdxBar;
|
|
tlbEditorStyles: TdxBar;
|
|
cbStyle: TcxBarEditItem;
|
|
cbStyleEdit: TcxBarEditItem;
|
|
cbSelectEditType: TcxBarEditItem;
|
|
edtPreviewItem: TcxBarEditItem;
|
|
cxStyleRepository1: TcxStyleRepository;
|
|
Standard: TcxStyle;
|
|
Italicized: TcxStyle;
|
|
Colored: TcxStyle;
|
|
Panel2: TPanel;
|
|
tlbRibbonOptions: TdxBar;
|
|
fncRibbonFontName: TcxBarEditItem;
|
|
cbRibbonFont: TcxBarEditItem;
|
|
ccbAssignedRibbonFonts: TcxBarEditItem;
|
|
btnRibbonStyle: TdxBarButton;
|
|
seFontSize: TcxBarEditItem;
|
|
prbFontSize: TcxBarEditItem;
|
|
trbFontSize: TcxBarEditItem;
|
|
edtTime: TcxBarEditItem;
|
|
edtDate: TcxBarEditItem;
|
|
cbFontSize: TcxBarEditItem;
|
|
dxBarDockControl1: TdxBarDockControl;
|
|
Panel1: TPanel;
|
|
clcFontColor: TcxBarEditItem;
|
|
fncPathFontName: TcxBarEditItem;
|
|
scbSelectPath: TcxBarEditItem;
|
|
btnImageEditors: TdxBarButton;
|
|
btnComboBoxes: TdxBarButton;
|
|
btnCheckBoxes: TdxBarButton;
|
|
edtMoney: TcxBarEditItem;
|
|
edtCalculate: TcxBarEditItem;
|
|
edtBlob: TcxBarEditItem;
|
|
memMemo: TcxBarEditItem;
|
|
reRich: TcxBarEditItem;
|
|
beCompanyName: TcxBarEditItem;
|
|
edtSite: TcxBarEditItem;
|
|
lblCompanyName: TcxBarEditItem;
|
|
mePhoneNum: TcxBarEditItem;
|
|
edtCompanyName: TcxBarEditItem;
|
|
tlbImageEditors: TdxBar;
|
|
edtImage: TcxBarEditItem;
|
|
edtBlobImage: TcxBarEditItem;
|
|
tlbComboBoxes: TdxBar;
|
|
imcImages: TcxBarEditItem;
|
|
cbLookUp: TcxBarEditItem;
|
|
edtLastPath: TcxBarEditItem;
|
|
tlbCheckBoxes: TdxBar;
|
|
chbMonochrome: TcxBarEditItem;
|
|
cbSelectColor: TcxBarEditItem;
|
|
chgSelectColor: TcxBarEditItem;
|
|
rgSelectColor: TcxBarEditItem;
|
|
Image1: TImage;
|
|
Bold: TcxStyle;
|
|
DataSource: TDataSource;
|
|
tblContacts: TTable;
|
|
Database: TDatabase;
|
|
siValueEditors: TdxBarSubItem;
|
|
btnExit: TdxBarButton;
|
|
tlbMainMenu: TdxBar;
|
|
siFile: TdxBarSubItem;
|
|
siView: TdxBarSubItem;
|
|
siHelp: TdxBarSubItem;
|
|
siBarStyles: TdxBarSubItem;
|
|
btnShowDescription: TdxBarButton;
|
|
btnToolBarDescriptions: TdxBarButton;
|
|
btnBarsHelp: TdxBarButton;
|
|
btnDockingHelp: TdxBarButton;
|
|
btnDownloads: TdxBarButton;
|
|
btnRateDemo: TdxBarButton;
|
|
btnDXOnTheWeb: TdxBarButton;
|
|
btnSupport: TdxBarButton;
|
|
btnProducts: TdxBarButton;
|
|
btnMyDX: TdxBarButton;
|
|
tlbHelp: TdxBar;
|
|
lblDemoDescription: TLabel;
|
|
siCheckBoxes: TdxBarSubItem;
|
|
siTextEditors: TdxBarSubItem;
|
|
siMultilineTextEditors: TdxBarSubItem;
|
|
siImageEditors: TdxBarSubItem;
|
|
siComboBoxes: TdxBarSubItem;
|
|
tlbEditorType: TdxBar;
|
|
tlbPreview: TdxBar;
|
|
btnStandard: TdxBarButton;
|
|
btnEnhanced: TdxBarButton;
|
|
btnFlat: TdxBarButton;
|
|
btnXP: TdxBarButton;
|
|
btnOffice11: TdxBarButton;
|
|
tlbTextEditorsInSubMenu: TdxBar;
|
|
tlbValueEditorsInSubMenu: TdxBar;
|
|
tlbMultiLineTextEditorsInSubMenu: TdxBar;
|
|
tlbImageEditorsInSubMenu: TdxBar;
|
|
tlbComboBoxesInSubMenu: TdxBar;
|
|
tlbCheckBoxesInSubMenu: TdxBar;
|
|
btnAbout: TdxBarLargeButton;
|
|
tlbDateTimeValues: TdxBar;
|
|
tlbScaleValues: TdxBar;
|
|
tlbShellMRUCombo: TdxBar;
|
|
tlbImageLookUpCombo: TdxBar;
|
|
tlbColorScheme: TdxBar;
|
|
btnBlueRibbonScheme: TdxBarLargeButton;
|
|
BlackRibbonScheme: TdxBarLargeButton;
|
|
SilverRibbonSheme: TdxBarLargeButton;
|
|
edtPopup: TcxBarEditItem;
|
|
memPopup: TMemo;
|
|
tblContactsID: TAutoIncField;
|
|
tblContactsProductID: TIntegerField;
|
|
tblContactsFirstName: TStringField;
|
|
tblContactsLastName: TStringField;
|
|
tblContactsCompany: TStringField;
|
|
tblContactsAddress: TStringField;
|
|
tblContactsCity: TStringField;
|
|
tblContactsState: TStringField;
|
|
tblContactsPurchaseDate: TDateField;
|
|
tblContactsPaymentType: TStringField;
|
|
tblContactsPaymentAmount: TBCDField;
|
|
tblContactsFullName: TStringField;
|
|
ilSmall: TcxImageList;
|
|
ilLarge: TcxImageList;
|
|
siGroup: TdxBarSubItem;
|
|
procedure btnEditorStylesClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure cbSelectEditTypeChange(Sender: TObject);
|
|
procedure cbStyleChange(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure cbRibbonFontChange(Sender: TObject);
|
|
procedure ccbAssignedRibbonFontsChange(Sender: TObject);
|
|
procedure btnRibbonStyleClick(Sender: TObject);
|
|
procedure seFontSizeChange(Sender: TObject);
|
|
procedure edtCompanyNameChange(Sender: TObject);
|
|
procedure edtMoneyChange(Sender: TObject);
|
|
procedure clcFontColorChange(Sender: TObject);
|
|
procedure edtSiteChange(Sender: TObject);
|
|
procedure chgSelectColorChange(Sender: TObject);
|
|
procedure chbMonochromeChange(Sender: TObject);
|
|
procedure scbSelectPathChange(Sender: TObject);
|
|
procedure edtLastPathChange(Sender: TObject);
|
|
procedure edtImageChange(Sender: TObject);
|
|
procedure reRichChange(Sender: TObject);
|
|
procedure memMemoChange(Sender: TObject);
|
|
procedure btnExitClick(Sender: TObject);
|
|
procedure btnShowDescriptionClick(Sender: TObject);
|
|
procedure btnToolBarDescriptionsClick(Sender: TObject);
|
|
procedure beCompanyNamePropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure cbStyleEditChange(Sender: TObject);
|
|
procedure imcImagesChange(Sender: TObject);
|
|
procedure fncRibbonFontNameChange(Sender: TObject);
|
|
procedure btnStandardClick(Sender: TObject);
|
|
procedure btnBlueRibbonSchemeClick(Sender: TObject);
|
|
procedure edtDateChange(Sender: TObject);
|
|
procedure cbLookUpChange(Sender: TObject);
|
|
procedure tblContactsCalcFields(DataSet: TDataSet);
|
|
procedure edtPopupPropertiesCloseUp(Sender: TObject);
|
|
private
|
|
FRibbon: TdxRibbon;
|
|
FUpdateLock: Boolean;
|
|
|
|
procedure CreateFrames;
|
|
procedure RibbonTabChanged(Sender: TdxCustomRibbon);
|
|
|
|
procedure UpdateCheckBoxesView;
|
|
procedure UpdateComboBoxesView;
|
|
procedure UpdateImageEditorsView;
|
|
procedure UpdateMultilineTextEditorsView;
|
|
procedure UpdateValueEditorsView;
|
|
procedure UpdateTextEditView;
|
|
|
|
procedure InitializeComboBoxes;
|
|
procedure InitializeCheckBoxes;
|
|
procedure InitializeImageEditors;
|
|
procedure InitializeMultilineTextEditors;
|
|
procedure InitializeTextEditors;
|
|
procedure InitializeValueEditors;
|
|
procedure InitializeEditorStyles;
|
|
procedure InitializeRibbon;
|
|
|
|
procedure InitializeFrames;
|
|
|
|
procedure SynchronizeCalcValueEditors(AValue: Variant);
|
|
procedure SynchronizeCheckGroupEditors(AValue: Variant);
|
|
procedure SynchronizeImageEditors(AValue: Variant);
|
|
procedure SynchronizeMultilineTextEditors(AValue: Variant);
|
|
procedure SynchronizePathEditors(AValue: Variant);
|
|
procedure SynchronizeRibbonFontEditors;
|
|
procedure SynchronizeValueEditors(AValue: Variant);
|
|
procedure SynchronizeTextEditors(AValue: Variant);
|
|
|
|
procedure SetEditorStyle(APropName: string; AStyleSource: TcxBarEditItem);
|
|
procedure UpdateActionsImages;
|
|
public
|
|
procedure HideAllFrames;
|
|
procedure ShowAllDemoToolbars(AVisible: Boolean);
|
|
procedure SelectNonRibbonTab(ATabIndex: Integer);
|
|
procedure SelectTab(ATabIndex: Integer);
|
|
end;
|
|
|
|
var
|
|
frmMain: TfrmMain;
|
|
|
|
implementation
|
|
|
|
uses
|
|
InPlaceEditorsDemoFrameManager, InPlaceEditorsDemoComboBoxes, InPlaceEditorsDemoImage,
|
|
InPlaceEditorsDemoText, InPlaceEditorsDemoMultiLineText, InPlaceEditorsDemoValue,
|
|
InPlaceEditorsDemoCheckBoxes, InPlaceEditorsDemoAbout;
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TfrmMain.btnEditorStylesClick(Sender: TObject);
|
|
begin
|
|
SelectNonRibbonTab(TdxBarItem(Sender).Category);
|
|
end;
|
|
|
|
procedure TfrmMain.FormCreate(Sender: TObject);
|
|
begin
|
|
dmCommonData.AboutFormClass := TfrmAbout;
|
|
CreateFrames;
|
|
|
|
TWinControl(dxBarDockControl1).Align := alTop;
|
|
lblDemoDescription.Caption := SDemoDescription;
|
|
Panel1.Align := alClient;
|
|
Panel2.Align := alClient;
|
|
|
|
tblContacts.Open;
|
|
BarManager.BeginUpdate;
|
|
try
|
|
InitializeComboBoxes;
|
|
InitializeCheckBoxes;
|
|
InitializeImageEditors;
|
|
InitializeMultilineTextEditors;
|
|
InitializeTextEditors;
|
|
InitializeValueEditors;
|
|
InitializeEditorStyles;
|
|
InitializeRibbon;
|
|
|
|
InitializeFrames;
|
|
|
|
BarManager.Style := bmsOffice11;
|
|
|
|
UpdateActionsImages;
|
|
|
|
BarManager.Bars[1].Visible := True;
|
|
SelectNonRibbonTab(1);
|
|
finally
|
|
BarManager.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.HideAllFrames;
|
|
var
|
|
I: Integer;
|
|
begin
|
|
for I := 0 to AFrameManager.FramesCount - 1 do
|
|
TForm(AFrameManager[I]).Hide;
|
|
end;
|
|
|
|
procedure TfrmMain.ShowAllDemoToolbars(AVisible: Boolean);
|
|
var
|
|
I: Integer;
|
|
begin
|
|
BarManager.BeginUpdate;
|
|
try
|
|
for I := 0 to BarManager.Bars.Count - 1 do
|
|
if BarManager.Bars[I].Tag <> 0 then
|
|
BarManager.Bars[I].Visible := AVisible;
|
|
finally
|
|
BarManager.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.SelectNonRibbonTab(ATabIndex: Integer);
|
|
var
|
|
I, APos: Integer;
|
|
begin
|
|
ShowAllDemoToolbars(False);
|
|
APos := 0;
|
|
BarManager.BeginUpdate;
|
|
try
|
|
for I := 0 to BarManager.Bars.Count - 1 do
|
|
if BarManager.Bars[I].Tag = ATabIndex then
|
|
begin
|
|
BarManager.Bars[I].Move(dxBarDockControl1, APos, 0);
|
|
BarManager.Bars[I].Visible := True;
|
|
Inc(APos);
|
|
end;
|
|
finally
|
|
BarManager.EndUpdate;
|
|
end;
|
|
SelectTab(ATabIndex);
|
|
end;
|
|
|
|
procedure TfrmMain.SelectTab(ATabIndex: Integer);
|
|
begin
|
|
HideAllFrames;
|
|
if ATabIndex <= AFrameManager.FramesCount then
|
|
AFrameManager[ATabIndex - 1].Show;
|
|
end;
|
|
|
|
procedure TfrmMain.RibbonTabChanged(Sender: TdxCustomRibbon);
|
|
begin
|
|
SelectTab(Sender.ActiveTab.Tag);
|
|
end;
|
|
|
|
procedure TfrmMain.CreateFrames;
|
|
begin
|
|
AFrameManager.AddFrame(TfrmValueEditors.Create(Self), Ord(bfcValueEditors));
|
|
AFrameManager.AddFrame(TfrmMultiLineTextEditors.Create(Self), Ord(bfcMultilineTextEditors));
|
|
AFrameManager.AddFrame(TfrmTextEditors.Create(Self), Ord(bfcTextEditors));
|
|
AFrameManager.AddFrame(TfrmImageEditors.Create(Self), Ord(bfcImageEditors));
|
|
AFrameManager.AddFrame(TfrmComboBoxes.Create(Self), Ord(bfcComboBoxes));
|
|
AFrameManager.AddFrame(TfrmCheckBoxes.Create(Self), Ord(bfcCheckBoxes));
|
|
AFrameManager.AddFrame(TEditorDemoBaseFrame.Create(Self), Ord(bfcStyles));
|
|
AFrameManager.AddFrame(TEditorDemoBaseFrame.Create(Self), Ord(bfcRibbonOptions));
|
|
end;
|
|
|
|
procedure TfrmMain.UpdateCheckBoxesView;
|
|
begin
|
|
TfrmCheckBoxes(AFrameManager[Ord(bfcCheckBoxes)]).SetParameters(rgSelectColor.EditValue, chgSelectColor.EditValue, chbMonochrome.EditValue);
|
|
end;
|
|
|
|
procedure TfrmMain.UpdateComboBoxesView;
|
|
var
|
|
AImage: TBitmap;
|
|
begin
|
|
AImage := TBitmap.Create;
|
|
try
|
|
ilSmall.GetImage(imcImages.EditValue, AImage);
|
|
|
|
TfrmComboBoxes(AFrameManager[Ord(bfcComboBoxes)]).SetParameters(clcFontColor.EditValue, fncPathFontName.EditValue,
|
|
scbSelectPath.EditValue, tblContacts.FieldByName('FullName').AsString, cbFontSize.EditValue, AImage);
|
|
finally
|
|
AImage.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.UpdateImageEditorsView;
|
|
var
|
|
AStream: TStringStream;
|
|
begin
|
|
if edtImage.EditValue = Null then
|
|
AStream := nil
|
|
else
|
|
AStream := TStringStream.Create(edtImage.EditValue);
|
|
try
|
|
TfrmImageEditors(AFrameManager.Frames[Ord(bfcImageEditors)]).SetParameters(AStream);
|
|
finally
|
|
AStream.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.UpdateMultilineTextEditorsView;
|
|
var
|
|
AStream: TStringStream;
|
|
begin
|
|
AStream := TStringStream.Create(edtBlob.EditValue);
|
|
try
|
|
TfrmMultiLineTextEditors(AFrameManager.Frames[Ord(bfcMultilineTextEditors)]).SetParameters(nil, AStream);
|
|
finally
|
|
AStream.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.UpdateValueEditorsView;
|
|
|
|
function GetFontSize: Integer;
|
|
begin
|
|
Result := prbFontSize.EditValue;
|
|
end;
|
|
|
|
function GetDate: string;
|
|
begin
|
|
Result := edtDate.EditValue;
|
|
end;
|
|
|
|
function GetTime: string;
|
|
begin
|
|
Result := edtTime.EditValue;
|
|
end;
|
|
|
|
function GetMoney: Currency;
|
|
begin
|
|
Result := edtMoney.EditValue;
|
|
end;
|
|
|
|
begin
|
|
TfrmValueEditors(AFrameManager.Frames[Ord(bfcValueEditors)]).SetParameters(GetFontSize, GetDate, GetTime, GetMoney);
|
|
end;
|
|
|
|
procedure TfrmMain.UpdateTextEditView;
|
|
begin
|
|
TfrmTextEditors(AFrameManager[Ord(bfcTextEditors)]).SetParameters(edtCompanyName.EditValue, edtSite.EditValue, mePhoneNum.EditValue);
|
|
end;
|
|
|
|
procedure TfrmMain.cbSelectEditTypeChange(Sender: TObject);
|
|
var
|
|
AIndex: Integer;
|
|
APropertiesClass: TcxCustomEditPropertiesClass;
|
|
AItem: TcxBarEditItem;
|
|
begin
|
|
AIndex := TcxComboBoxProperties(cbSelectEditType.Properties).Items.IndexOf(cbSelectEditType.EditValue);
|
|
APropertiesClass := TcxCustomEditPropertiesClass(GetRegisteredEditProperties.Items[AIndex]);
|
|
|
|
for AIndex := 0 to BarManager.ItemCount - 1 do
|
|
if BarManager.Items[AIndex] is TcxBarEditItem then
|
|
begin
|
|
AItem := TcxBarEditItem(BarManager.Items[AIndex]);
|
|
if (AItem.Category in [1..DemoTabsCount]) and
|
|
(AItem.Properties.ClassType = APropertiesClass) then
|
|
begin
|
|
edtPreviewItem.EditValue := Null;
|
|
edtPreviewItem.PropertiesClass := APropertiesClass;
|
|
edtPreviewItem.Properties.Assign(AItem.Properties);
|
|
edtPreviewItem.EditValue := AItem.EditValue;
|
|
edtPreviewItem.Caption := cbSelectEditType.EditValue;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.cbStyleChange(Sender: TObject);
|
|
begin
|
|
SetEditorStyle('Style', cbStyle);
|
|
end;
|
|
|
|
procedure TfrmMain.FormDestroy(Sender: TObject);
|
|
begin
|
|
tblContacts.Close;
|
|
end;
|
|
|
|
procedure TfrmMain.UpdateActionsImages;
|
|
begin
|
|
btnDockingHelp.ImageIndex := 18;
|
|
btnBarsHelp.ImageIndex := 18;
|
|
btnDXOnTheWeb.ImageIndex := 20;
|
|
btnMyDX.ImageIndex := 20;
|
|
btnDownloads.ImageIndex := 20;
|
|
btnProducts.ImageIndex := 20;
|
|
btnSupport.ImageIndex := 21;
|
|
btnRateDemo.ImageIndex := 22;
|
|
btnAbout.LargeImageIndex := 19;
|
|
btnAbout.ImageIndex := 19;
|
|
end;
|
|
|
|
procedure TfrmMain.cbRibbonFontChange(Sender: TObject);
|
|
begin
|
|
SynchronizeRibbonFontEditors;
|
|
end;
|
|
|
|
procedure TfrmMain.ccbAssignedRibbonFontsChange(Sender: TObject);
|
|
var
|
|
I: Integer;
|
|
AValue: string;
|
|
AFonts: TdxRibbonAssignedFonts;
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
AValue := ccbAssignedRibbonFonts.EditValue;
|
|
AFonts := FRibbon.Fonts.AssignedFonts;
|
|
for I := 1 to TcxCheckComboBoxProperties(ccbAssignedRibbonFonts.Properties).Items.Count do
|
|
if AValue[I] = '1' then
|
|
Include(AFonts, TdxRibbonAssignedFont(I - 1))
|
|
else
|
|
Exclude(AFonts, TdxRibbonAssignedFont(I - 1));
|
|
FRibbon.Fonts.AssignedFonts := AFonts;
|
|
SynchronizeRibbonFontEditors;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.btnRibbonStyleClick(Sender: TObject);
|
|
begin
|
|
if btnRibbonStyle.Down then
|
|
begin
|
|
BarManager.BeginUpdate;
|
|
try
|
|
tlbMainMenu.Visible := False;
|
|
FRibbon.BarManager := BarManager;
|
|
FRibbon.SupportNonClientDrawing := True;
|
|
ShowAllDemoToolbars(True);
|
|
FRibbon.Visible := True;
|
|
tlbRibbonOptions.Visible := True;
|
|
tlbHelp.Visible := True;
|
|
FRibbon.Tabs[0].Active := True;
|
|
lblDemoDescription.Align := alBottom;
|
|
TcxCheckGroupProperties(chgSelectColor.Properties).Columns := 3;
|
|
TcxRadioGroupProperties(rgSelectColor.Properties).Columns := 3;
|
|
SelectTab(1);
|
|
finally
|
|
BarManager.EndUpdate;
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
BarManager.BeginUpdate;
|
|
try
|
|
FRibbon.Visible := False;
|
|
tlbRibbonOptions.Visible := False;
|
|
tlbHelp.Visible := False;
|
|
FRibbon.SupportNonClientDrawing := False;
|
|
FRibbon.BarManager := nil;
|
|
btnValueEdits.Down := True;
|
|
ShowAllDemoToolbars(False);
|
|
tlbMainMenu.Visible := True;
|
|
TcxCheckGroupProperties(chgSelectColor.Properties).Columns := 1;
|
|
TcxRadioGroupProperties(rgSelectColor.Properties).Columns := 1;
|
|
SelectNonRibbonTab(1);
|
|
finally
|
|
BarManager.EndUpdate;
|
|
end;
|
|
lblDemoDescription.Align := alTop;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.seFontSizeChange(Sender: TObject);
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
SynchronizeValueEditors(TcxBarEditItem(Sender).EditValue);
|
|
UpdateValueEditorsView;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.edtCompanyNameChange(Sender: TObject);
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
SynchronizeTextEditors(TcxBarEditItem(Sender).EditValue);
|
|
UpdateTextEditView;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.edtMoneyChange(Sender: TObject);
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
SynchronizeCalcValueEditors(TcxBarEditItem(Sender).EditValue);
|
|
UpdateValueEditorsView;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.InitializeComboBoxes;
|
|
begin
|
|
scbSelectPath.EditValue := GetCurrentDir;
|
|
clcFontColor.EditValue := clWindow;
|
|
AFrameManager[Ord(bfcComboBoxes)].SetDescription(SToolBarDescription);
|
|
end;
|
|
|
|
procedure TfrmMain.InitializeCheckBoxes;
|
|
begin
|
|
chbMonochrome.EditValue := False;
|
|
AFrameManager[Ord(bfcCheckBoxes)].SetDescription(SCheckBoxesDescription);
|
|
end;
|
|
|
|
procedure TfrmMain.InitializeImageEditors;
|
|
begin
|
|
SynchronizeImageEditors(edtImage.EditValue);
|
|
UpdateImageEditorsView;
|
|
AFrameManager[Ord(bfcImageEditors)].SetDescription(SImageEditDescription);
|
|
end;
|
|
|
|
procedure TfrmMain.InitializeMultilineTextEditors;
|
|
|
|
procedure ReadTextFile(AEditor: TcxBarEditItem; AFileName: string);
|
|
var
|
|
AList: TStringList;
|
|
begin
|
|
AList := TStringList.Create;
|
|
try
|
|
if FileExists(AFileName) then
|
|
begin
|
|
AList.LoadFromFile(AFileName);
|
|
AEditor.EditValue := AList.Text;
|
|
end
|
|
else
|
|
ShowMessage(Format(SFileFindError, [AFileName]));
|
|
finally
|
|
AList.Free;
|
|
end;
|
|
end;
|
|
|
|
begin
|
|
ReadTextFile(reRich, 'EditorCategories.rtf');
|
|
SynchronizeMultilineTextEditors(memPopup.Lines.Text);
|
|
UpdateMultilineTextEditorsView;
|
|
AFrameManager[Ord(bfcMultilineTextEditors)].SetDescription(SMultiLineTextEdits);
|
|
end;
|
|
|
|
procedure TfrmMain.InitializeTextEditors;
|
|
begin
|
|
edtCompanyName.EditValue := 'Developer Express Inc.';
|
|
AFrameManager[Ord(bfcTextEditors)].SetDescription(SToolBarDescription);
|
|
end;
|
|
|
|
procedure TfrmMain.InitializeValueEditors;
|
|
begin
|
|
edtTime.EditValue := Time;
|
|
edtDate.EditValue := Date;
|
|
AFrameManager[Ord(bfcValueEditors)].SetDescription(SToolBarDescription);
|
|
end;
|
|
|
|
procedure TfrmMain.InitializeEditorStyles;
|
|
|
|
procedure InitializeStylesCombo(ABarEditItem: TcxBarEditItem; AStyles: TStrings);
|
|
begin
|
|
TcxComboBoxProperties(ABarEditItem.Properties).Items.AddStrings(AStyles);
|
|
ABarEditItem.EditValue := TcxComboBoxProperties(ABarEditItem.Properties).Items[0];
|
|
end;
|
|
|
|
var
|
|
I: Integer;
|
|
AStyles: TStringList;
|
|
AItems: TStrings;
|
|
begin
|
|
AItems := TcxComboBoxProperties(cbSelectEditType.Properties).Items;
|
|
AItems.BeginUpdate;
|
|
try
|
|
for I := 0 to GetRegisteredEditProperties.Count - 1 do
|
|
AItems.Add(GetRegisteredEditProperties.Descriptions[I]);
|
|
finally
|
|
AItems.EndUpdate;
|
|
end;
|
|
|
|
AStyles := TStringList.Create;
|
|
try
|
|
for I := 0 to cxStyleRepository1.Count - 1 do
|
|
AStyles.Add(cxStyleRepository1.Items[I].Name);
|
|
InitializeStylesCombo(cbStyle, AStyles);
|
|
InitializeStylesCombo(cbStyleEdit, AStyles);
|
|
finally
|
|
AStyles.Free;
|
|
end;
|
|
cbSelectEditType.EditValue := 'TextEdit';
|
|
|
|
AFrameManager[Ord(bfcStyles)].SetDescription(SEditorStyles);
|
|
end;
|
|
|
|
procedure TfrmMain.InitializeRibbon;
|
|
|
|
function AddTab(AToolBar: TdxBar): TdxRibbonTab;
|
|
begin
|
|
Result := FRibbon.Tabs.Add;
|
|
Result.Caption := TabCaptions[FRibbon.Tabs.Count - 1];
|
|
Result.Tag := AToolBar.Tag;
|
|
end;
|
|
|
|
procedure AddToolBar(AToolBar: TdxBar);
|
|
begin
|
|
AddTab(AToolBar).AddToolBar(AToolBar);
|
|
end;
|
|
|
|
procedure AddDemoToolBars;
|
|
var
|
|
I: Integer;
|
|
begin
|
|
for I := 0 to DemoTabsCount - 1 do
|
|
AddTab(BarManager.Bars[I]);
|
|
for I := 0 to BarManager.Bars.Count - 1 do
|
|
if BarManager.Bars[I].Tag in [1..DemoTabsCount] then
|
|
FRibbon.Tabs[BarManager.Bars[I].Tag - 1].AddToolBar(BarManager.Bars[I]);
|
|
end;
|
|
|
|
begin
|
|
FRibbon := TdxRibbon.Create(frmMain);
|
|
FRibbon.Parent := frmMain;
|
|
FRibbon.PopupMenuItems := [rpmiMinimizeRibbon];
|
|
FRibbon.SupportNonClientDrawing := False;
|
|
FRibbon.Visible := False;
|
|
FRibbon.BarManager := BarManager;
|
|
cbRibbonFont.EditValue := 'Tab Caption';
|
|
FRibbon.ColorSchemeName := 'Blue';
|
|
|
|
AddDemoToolBars;
|
|
|
|
AddToolBar(tlbEditorType);
|
|
FRibbon.Tabs[FRibbon.Tabs.Count - 1].AddToolBar(tlbEditorStyles);
|
|
FRibbon.Tabs[FRibbon.Tabs.Count - 1].AddToolBar(tlbPreview);
|
|
|
|
AddToolBar(tlbRibbonOptions);
|
|
FRibbon.Tabs[FRibbon.Tabs.Count - 1].AddToolBar(tlbColorScheme);
|
|
|
|
AddToolBar(tlbHelp);
|
|
FRibbon.OnTabChanged := RibbonTabChanged;
|
|
FRibbon.ApplicationButton.Glyph.Assign(Image1.Picture.Bitmap);
|
|
FRibbon.BarManager := nil;
|
|
AFrameManager[Ord(bfcRibbonOptions)].SetDescription(SRibbonOptionsDescription);
|
|
end;
|
|
|
|
procedure TfrmMain.InitializeFrames;
|
|
var
|
|
I: Integer;
|
|
begin
|
|
for I := 0 to AFrameManager.FramesCount - 1 do
|
|
begin
|
|
AFrameManager[I].Parent := Panel1;
|
|
AFrameManager[I].Align := alClient;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.SynchronizeCalcValueEditors(AValue: Variant);
|
|
begin
|
|
FUpdateLock := True;
|
|
try
|
|
edtCalculate.EditValue := AValue;
|
|
edtMoney.EditValue := AValue;
|
|
finally
|
|
FUpdateLock := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.SynchronizeCheckGroupEditors(AValue: Variant);
|
|
begin
|
|
FUpdateLock := True;
|
|
try
|
|
cbSelectColor.EditValue := AValue;
|
|
chgSelectColor.EditValue := AValue;
|
|
finally
|
|
FUpdateLock := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.SynchronizeImageEditors(AValue: Variant);
|
|
begin
|
|
FUpdateLock := True;
|
|
try
|
|
edtBlobImage.EditValue := AValue;
|
|
edtImage.EditValue := AValue;
|
|
finally
|
|
FUpdateLock := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.SynchronizeMultilineTextEditors(AValue: Variant);
|
|
var
|
|
AStream: TStringStream;
|
|
begin
|
|
FUpdateLock := True;
|
|
try
|
|
AStream := TStringStream.Create(AValue);
|
|
try
|
|
edtBlob.EditValue := AValue;
|
|
memMemo.EditValue := AValue;
|
|
memPopup.Lines.Clear;
|
|
memPopup.Lines.LoadFromStream(AStream);
|
|
finally
|
|
AStream.Free;
|
|
end;
|
|
finally
|
|
FUpdateLock := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.SynchronizePathEditors(AValue: Variant);
|
|
begin
|
|
FUpdateLock := True;
|
|
try
|
|
scbSelectPath.EditValue := AValue;
|
|
edtLastPath.EditValue := AValue;
|
|
finally
|
|
FUpdateLock := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.SynchronizeRibbonFontEditors;
|
|
var
|
|
AFontIndex: Integer;
|
|
S: string;
|
|
ARibbonFont: TdxRibbonAssignedFont;
|
|
begin
|
|
FUpdateLock := True;
|
|
try
|
|
AFontIndex := TcxComboBoxProperties(cbRibbonFont.Properties).Items.IndexOf(cbRibbonFont.EditValue);
|
|
case AFontIndex of
|
|
0: fncRibbonFontName.EditValue := FRibbon.Fonts.TabHeader.Name;
|
|
1: fncRibbonFontName.EditValue := FRibbon.Fonts.Group.Name;
|
|
2: fncRibbonFontName.EditValue := FRibbon.Fonts.GroupHeader.Name;
|
|
end;
|
|
|
|
S := '';
|
|
for ARibbonFont := Low(TdxRibbonAssignedFont) to High(TdxRibbonAssignedFont) do
|
|
if ARibbonFont in FRibbon.Fonts.AssignedFonts then
|
|
S := S + '1'
|
|
else
|
|
S := S + '0';
|
|
ccbAssignedRibbonFonts.EditValue := S;
|
|
finally
|
|
FUpdateLock := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.SynchronizeValueEditors(AValue: Variant);
|
|
begin
|
|
FUpdateLock := True;
|
|
try
|
|
seFontSize.EditValue := AValue;
|
|
trbFontSize.EditValue := AValue;
|
|
prbFontSize.EditValue := AValue;
|
|
finally
|
|
FUpdateLock := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.SynchronizeTextEditors(AValue: Variant);
|
|
begin
|
|
FUpdateLock := True;
|
|
try
|
|
if ActiveBarControl <> nil then
|
|
ActiveBarControl.HideAll;
|
|
|
|
beCompanyName.EditValue := AValue;
|
|
edtCompanyName.EditValue := AValue;
|
|
lblCompanyName.Caption := AValue;
|
|
finally
|
|
FUpdateLock := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.clcFontColorChange(Sender: TObject);
|
|
begin
|
|
UpdateComboBoxesView;
|
|
end;
|
|
|
|
procedure TfrmMain.edtSiteChange(Sender: TObject);
|
|
begin
|
|
UpdateTextEditView;
|
|
end;
|
|
|
|
procedure TfrmMain.chgSelectColorChange(Sender: TObject);
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
SynchronizeCheckGroupEditors(TcxBarEditItem(Sender).EditValue);
|
|
UpdateCheckBoxesView;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.chbMonochromeChange(Sender: TObject);
|
|
begin
|
|
UpdateCheckBoxesView;
|
|
end;
|
|
|
|
procedure TfrmMain.scbSelectPathChange(Sender: TObject);
|
|
var
|
|
AMRUEditLookupItems: TStrings;
|
|
AValue: string;
|
|
AIndex: Integer;
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
AValue := scbSelectPath.EditValue;
|
|
|
|
edtLastPath.Properties.BeginUpdate;
|
|
try
|
|
AMRUEditLookupItems := TcxMRUEditProperties(edtLastPath.Properties).LookupItems;
|
|
AIndex := AMRUEditLookupItems.IndexOf(AValue);
|
|
if AIndex <> -1 then
|
|
AMRUEditLookupItems.Move(AIndex, 0)
|
|
else
|
|
AMRUEditLookupItems.Insert(0, AValue);
|
|
if AMRUEditLookupItems.Count > 100 then
|
|
AMRUEditLookupItems.Delete(AMRUEditLookupItems.Count - 1);
|
|
finally
|
|
edtLastPath.Properties.EndUpdate(False);
|
|
end;
|
|
|
|
SynchronizePathEditors(AValue);
|
|
UpdateComboBoxesView;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.edtLastPathChange(Sender: TObject);
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
SynchronizePathEditors(TcxBarEditItem(Sender).EditValue);
|
|
UpdateComboBoxesView;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.edtImageChange(Sender: TObject);
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
SynchronizeImageEditors(TcxBarEditItem(Sender).EditValue);
|
|
UpdateImageEditorsView;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.reRichChange(Sender: TObject);
|
|
var
|
|
AStream: TStringStream;
|
|
begin
|
|
AStream := TStringStream.Create(reRich.EditValue);
|
|
try
|
|
TfrmMultiLineTextEditors(AFrameManager.Frames[Ord(bfcMultilineTextEditors)]).SetParameters(AStream, nil);
|
|
finally
|
|
AStream.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.memMemoChange(Sender: TObject);
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
SynchronizeMultilineTextEditors(TcxBarEditItem(Sender).EditValue);
|
|
UpdateMultilineTextEditorsView;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.btnExitClick(Sender: TObject);
|
|
begin
|
|
frmMain.Close;
|
|
end;
|
|
|
|
procedure TfrmMain.btnShowDescriptionClick(Sender: TObject);
|
|
begin
|
|
lblDemoDescription.Visible := btnShowDescription.Down;
|
|
end;
|
|
|
|
procedure TfrmMain.btnToolBarDescriptionsClick(Sender: TObject);
|
|
begin
|
|
AFrameManager.SetDescriptionsVisible(btnToolBarDescriptions.Down);
|
|
end;
|
|
|
|
procedure TfrmMain.beCompanyNamePropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
begin
|
|
ShowMessage('Company name: ' + beCompanyName.EditValue);
|
|
end;
|
|
|
|
procedure TfrmMain.cbStyleEditChange(Sender: TObject);
|
|
begin
|
|
SetEditorStyle('StyleEdit', cbStyleEdit);
|
|
end;
|
|
|
|
procedure TfrmMain.SetEditorStyle(APropName: string; AStyleSource: TcxBarEditItem);
|
|
var
|
|
AStyleIndex: Integer;
|
|
AStyle: TcxStyle;
|
|
begin
|
|
AStyleIndex := TcxComboBoxProperties(AStyleSource.Properties).Items.IndexOf(AStyleSource.EditValue);
|
|
AStyle := TcxStyle(cxStyleRepository1.Items[AStyleIndex]);
|
|
if APropName = 'Style' then
|
|
edtPreviewItem.Style := AStyle
|
|
else {'StyleEdit'}
|
|
edtPreviewItem.StyleEdit := AStyle;
|
|
end;
|
|
|
|
procedure TfrmMain.imcImagesChange(Sender: TObject);
|
|
begin
|
|
UpdateComboBoxesView;
|
|
end;
|
|
|
|
procedure TfrmMain.fncRibbonFontNameChange(Sender: TObject);
|
|
var
|
|
AFontIndex: Integer;
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
AFontIndex := TcxComboBoxProperties(cbRibbonFont.Properties).Items.IndexOf(cbRibbonFont.EditValue);
|
|
case AFontIndex of
|
|
0: FRibbon.Fonts.TabHeader.Name := fncRibbonFontName.EditValue;
|
|
1: FRibbon.Fonts.Group.Name := fncRibbonFontName.EditValue;
|
|
2: FRibbon.Fonts.GroupHeader.Name := fncRibbonFontName.EditValue;
|
|
end;
|
|
SynchronizeRibbonFontEditors;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.btnStandardClick(Sender: TObject);
|
|
begin
|
|
BarManager.Style := TdxBarManagerStyle(TComponent(Sender).Tag);
|
|
end;
|
|
|
|
procedure TfrmMain.btnBlueRibbonSchemeClick(Sender: TObject);
|
|
begin
|
|
FRibbon.ColorSchemeName := TdxBarLargeButton(Sender).Caption;
|
|
end;
|
|
|
|
procedure TfrmMain.edtDateChange(Sender: TObject);
|
|
begin
|
|
UpdateValueEditorsView;
|
|
end;
|
|
|
|
procedure TfrmMain.cbLookUpChange(Sender: TObject);
|
|
begin
|
|
tblContacts.Locate('ID', cbLookUp.EditValue, []);
|
|
UpdateComboBoxesView;
|
|
end;
|
|
|
|
procedure TfrmMain.tblContactsCalcFields(DataSet: TDataSet);
|
|
begin
|
|
tblContacts.FieldByName('FullName').Value := tblContacts.FieldByName('FirstName').AsString + ' ' + tblContacts.FieldByName('LastName').AsString;
|
|
end;
|
|
|
|
procedure TfrmMain.edtPopupPropertiesCloseUp(Sender: TObject);
|
|
begin
|
|
if not FUpdateLock then
|
|
begin
|
|
SynchronizeMultilineTextEditors(memPopup.Lines.Text);
|
|
UpdateMultilineTextEditorsView;
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|
|
|