git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@31 05c56307-c608-d34a-929d-697000501d7a
649 lines
20 KiB
ObjectPascal
649 lines
20 KiB
ObjectPascal
unit EBarMDIDemoMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
ExtCtrls, ComCtrls, dxBar, StdCtrls, dxBarExtItems, cxControls,
|
|
ImgList, ActnList, cxLookAndFeels, dxStatusBar, cxGraphics, EBarsUtils;
|
|
|
|
type
|
|
TEBarMDIDemoMainForm = class(TForm)
|
|
BarManager: TdxBarManager;
|
|
|
|
dxBarButtonNew: TdxBarLargeButton;
|
|
dxBarButtonOpen: TdxBarLargeButton;
|
|
dxBarButtonClose: TdxBarLargeButton;
|
|
dxBarButtonSave: TdxBarLargeButton;
|
|
dxBarButtonSaveAs: TdxBarLargeButton;
|
|
dxBarButtonPrint: TdxBarLargeButton;
|
|
dxBarButtonExit: TdxBarLargeButton;
|
|
dxBarButtonUndo: TdxBarLargeButton;
|
|
dxBarButtonCut: TdxBarLargeButton;
|
|
dxBarButtonCopy: TdxBarLargeButton;
|
|
dxBarButtonPaste: TdxBarLargeButton;
|
|
dxBarButtonClear: TdxBarLargeButton;
|
|
dxBarButtonSelectAll: TdxBarLargeButton;
|
|
dxBarButtonFind: TdxBarLargeButton;
|
|
dxBarButtonReplace: TdxBarLargeButton;
|
|
dxBarComboFontSize: TdxBarCombo;
|
|
dxBarButtonBold: TdxBarLargeButton;
|
|
dxBarButtonItalic: TdxBarLargeButton;
|
|
dxBarButtonUnderline: TdxBarLargeButton;
|
|
dxBarButtonBullets: TdxBarLargeButton;
|
|
dxBarButtonProtected: TdxBarLargeButton;
|
|
dxBarButtonAlignLeft: TdxBarLargeButton;
|
|
dxBarButtonCenter: TdxBarLargeButton;
|
|
dxBarButtonAlignRight: TdxBarLargeButton;
|
|
dxBarButtonFont: TdxBarLargeButton;
|
|
|
|
dxBarButtonNewWindow: TdxBarLargeButton;
|
|
dxBarButtonArrangeAll: TdxBarLargeButton;
|
|
dxBarButtonNextWindow: TdxBarLargeButton;
|
|
dxBarButtonPreviousWindow: TdxBarLargeButton;
|
|
dxBarListWindows: TdxBarListItem;
|
|
|
|
dxBarSubItemFile: TdxBarSubItem;
|
|
dxBarSubItemEdit: TdxBarSubItem;
|
|
dxBarSubItemFormat: TdxBarSubItem;
|
|
dxBarSubItemWindow: TdxBarSubItem;
|
|
dxBarSubItemHelp: TdxBarSubItem;
|
|
|
|
OpenDialog: TOpenDialog;
|
|
SaveDialog: TSaveDialog;
|
|
PrintDialog: TPrintDialog;
|
|
FontDialog: TFontDialog;
|
|
dxBarPopupMenu: TdxBarPopupMenu;
|
|
dxBarButtonEnhancedStyle: TdxBarLargeButton;
|
|
dxBarMRUFiles: TdxBarMRUListItem;
|
|
dxBarButtonStdStyle: TdxBarLargeButton;
|
|
dxBarButtonFlatStyle: TdxBarLargeButton;
|
|
dxBarDockControl1: TdxBarDockControl;
|
|
dxBarComboFontColor: TdxBarColorCombo;
|
|
dxBarGroup1: TdxBarGroup;
|
|
dxBarButtonXPStyle: TdxBarLargeButton;
|
|
dxBarButton1: TdxBarLargeButton;
|
|
dxBarButton2: TdxBarLargeButton;
|
|
dxBarButton3: TdxBarLargeButton;
|
|
dxBarButton4: TdxBarLargeButton;
|
|
dxBarButton5: TdxBarLargeButton;
|
|
dxBarButton6: TdxBarLargeButton;
|
|
dxBarButton7: TdxBarLargeButton;
|
|
dxBarButtonOffice11Style: TdxBarLargeButton;
|
|
Images: TImageList;
|
|
dxBarComboFontName: TdxBarFontNameCombo;
|
|
ilHotImages: TImageList;
|
|
ilDisabledImages: TImageList;
|
|
dxBarLargeButton1: TdxBarLargeButton;
|
|
dxBarLargeButton2: TdxBarLargeButton;
|
|
ilStatusBarImages: TImageList;
|
|
dxStatusBar: TdxStatusBar;
|
|
FindDialog: TFindDialog;
|
|
ReplaceDialog: TReplaceDialog;
|
|
|
|
procedure FormCreate(Sender: TObject);
|
|
|
|
procedure dxBarButtonNewClick(Sender: TObject);
|
|
procedure dxBarButtonOpenClick(Sender: TObject);
|
|
procedure dxBarButtonCloseClick(Sender: TObject);
|
|
procedure dxBarButtonSaveClick(Sender: TObject);
|
|
procedure dxBarButtonSaveAsClick(Sender: TObject);
|
|
procedure dxBarButtonPrintClick(Sender: TObject);
|
|
procedure dxBarButtonExitClick(Sender: TObject);
|
|
|
|
procedure dxBarButtonUndoClick(Sender: TObject);
|
|
procedure dxBarButtonCutClick(Sender: TObject);
|
|
procedure dxBarButtonCopyClick(Sender: TObject);
|
|
procedure dxBarButtonPasteClick(Sender: TObject);
|
|
procedure dxBarButtonClearClick(Sender: TObject);
|
|
procedure dxBarButtonSelectAllClick(Sender: TObject);
|
|
procedure dxBarButtonFindClick(Sender: TObject);
|
|
procedure dxBarButtonReplaceClick(Sender: TObject);
|
|
|
|
procedure dxBarComboFontNameChange(Sender: TObject);
|
|
procedure dxBarComboFontSizeChange(Sender: TObject);
|
|
procedure dxBarButtonBoldClick(Sender: TObject);
|
|
procedure dxBarButtonItalicClick(Sender: TObject);
|
|
procedure dxBarButtonUnderlineClick(Sender: TObject);
|
|
procedure dxBarComboFontColorChange(Sender: TObject);
|
|
procedure dxBarButtonBulletsClick(Sender: TObject);
|
|
procedure dxBarButtonAlignClick(Sender: TObject);
|
|
procedure dxBarButtonProtectedClick(Sender: TObject);
|
|
procedure dxBarButtonFontClick(Sender: TObject);
|
|
|
|
procedure dxBarButtonArrangeAllClick(Sender: TObject);
|
|
procedure dxBarButtonNextWindowClick(Sender: TObject);
|
|
procedure dxBarButtonPreviousWindowClick(Sender: TObject);
|
|
procedure dxBarListWindowsGetData(Sender: TObject);
|
|
procedure dxBarListWindowsClick(Sender: TObject);
|
|
procedure dxBarButtonEnhancedStyleClick(Sender: TObject);
|
|
procedure dxBarMRUFilesClick(Sender: TObject);
|
|
procedure dxBarButtonStdStyleClick(Sender: TObject);
|
|
procedure dxBarButtonFlatStyleClick(Sender: TObject);
|
|
procedure dxBarButtonXPStyleClick(Sender: TObject);
|
|
procedure dxBarButtonOffice11StyleClick(Sender: TObject);
|
|
procedure FindOne(Sender: TObject);
|
|
procedure ReplaceOne(Sender: TObject);
|
|
private
|
|
FUpdating: Boolean;
|
|
|
|
function GetEditor: TRichEdit;
|
|
function GetEditorCol: Integer;
|
|
function GetEditorRow: Integer;
|
|
function GetFileName: string;
|
|
procedure SetFileName(Value: string);
|
|
public
|
|
CreatedMDICount: Integer;
|
|
|
|
procedure EditorChange(Sender: TObject);
|
|
procedure EditorSelectionChange(Sender: TObject);
|
|
function SaveFile(ASaveAs: Boolean): Boolean;
|
|
procedure SetModified(Value: Boolean);
|
|
procedure ShowItems(AShow: Boolean);
|
|
|
|
property Editor: TRichEdit read GetEditor;
|
|
property EditorCol: Integer read GetEditorCol;
|
|
property EditorRow: Integer read GetEditorRow;
|
|
property FileName: string read GetFileName write SetFileName;
|
|
end;
|
|
|
|
var
|
|
EBarMDIDemoMainForm: TEBarMDIDemoMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
{$R windowsxp.res}
|
|
|
|
uses
|
|
RichEdit, EBarMDIDemoChild, EBarMDIDemoAbout;
|
|
|
|
const
|
|
sRichEditFoundResultCaption = 'Information';
|
|
sRichEditTextNotFound = 'The search text is not found.';
|
|
sRichEditReplaceAllResult = 'Replaced %d occurances.';
|
|
|
|
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
|
|
FontType: Integer; Data: Pointer): Integer; stdcall;
|
|
begin
|
|
TStrings(Data).Add(LogFont.lfFaceName);
|
|
Result := 1;
|
|
end;
|
|
|
|
function TEBarMDIDemoMainForm.GetEditor: TRichEdit;
|
|
begin
|
|
if ActiveMDIChild = nil then Result := nil
|
|
else Result := TEBarMDIDemoChildForm(ActiveMDIChild).Editor;
|
|
end;
|
|
|
|
function TEBarMDIDemoMainForm.GetEditorCol: Integer;
|
|
begin
|
|
with Editor do
|
|
Result := SelStart - SendMessage(Handle, EM_LINEINDEX, EditorRow, 0);
|
|
end;
|
|
|
|
function TEBarMDIDemoMainForm.GetEditorRow: Integer;
|
|
begin
|
|
with Editor do
|
|
Result := SendMessage(Handle, EM_LINEFROMCHAR, SelStart, 0);
|
|
end;
|
|
|
|
function TEBarMDIDemoMainForm.GetFileName: string;
|
|
begin
|
|
if ActiveMDIChild = nil then Result := ''
|
|
else Result := TEBarMDIDemoChildForm(ActiveMDIChild).FileName;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.SetFileName(Value: string);
|
|
begin
|
|
if ActiveMDIChild <> nil then
|
|
TEBarMDIDemoChildForm(ActiveMDIChild).FileName := Value;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.FindOne(Sender: TObject);
|
|
var
|
|
StartPos, FindLength, FoundAt: Integer;
|
|
Flags: TSearchTypes;
|
|
P: TPoint;
|
|
CaretR, R, IntersectR: TRect;
|
|
begin
|
|
with Editor, TFindDialog(Sender) do
|
|
begin
|
|
if frDown in Options then
|
|
begin
|
|
if SelLength = 0 then StartPos := SelStart
|
|
else StartPos := SelStart + SelLength;
|
|
FindLength := Length(Text) - StartPos;
|
|
end
|
|
else
|
|
begin
|
|
StartPos := SelStart;
|
|
FindLength := -StartPos;
|
|
end;
|
|
Flags := [];
|
|
if frMatchCase in Options then Include(Flags, stMatchCase);
|
|
if frWholeWord in Options then Include(Flags, stWholeWord);
|
|
Screen.Cursor := crHourglass;
|
|
FoundAt := Editor.FindText(FindText, StartPos, FindLength, Flags);
|
|
if not (frReplaceAll in Options) then Screen.Cursor := crDefault;
|
|
if FoundAt > -1 then
|
|
if frReplaceAll in Options then
|
|
begin
|
|
SelStart := FoundAt;
|
|
SelLength := Length(FindText);
|
|
end
|
|
else
|
|
begin
|
|
SetFocus;
|
|
SelStart := FoundAt;
|
|
SelLength := Length(FindText);
|
|
|
|
GetCaretPos(P);
|
|
P := ClientToScreen(P);
|
|
CaretR := Rect(P.X, P.Y, P.X + 2, P.Y + 20);
|
|
GetWindowRect(Handle, R);
|
|
if IntersectRect(IntersectR, CaretR, R) then
|
|
if P.Y < Screen.Height div 2 then
|
|
Top := P.Y + 40
|
|
else
|
|
Top := P.Y - (R.Bottom - R.Top + 20);
|
|
end
|
|
else
|
|
if not (frReplaceAll in Options) then
|
|
Application.MessageBox(sRichEditTextNotFound,
|
|
sRichEditFoundResultCaption, MB_ICONINFORMATION);
|
|
end;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.ReplaceOne(Sender: TObject);
|
|
var
|
|
ReplacedCount, OldSelStart, PrevSelStart: Integer;
|
|
S: string;
|
|
begin
|
|
with Editor, TReplaceDialog(Sender) do
|
|
begin
|
|
ReplacedCount := 0;
|
|
OldSelStart := SelStart;
|
|
if frReplaceAll in Options then
|
|
Screen.Cursor := crHourglass;
|
|
repeat
|
|
if (SelLength > 0) and ((SelText = FindText) or
|
|
(not (frMatchCase in Options) and
|
|
(AnsiUpperCase(SelText) = AnsiUpperCase(FindText)))) then
|
|
begin
|
|
SelText := ReplaceText;
|
|
Inc(ReplacedCount);
|
|
end;
|
|
PrevSelStart := SelStart;
|
|
FindOne(Sender);
|
|
until not (frReplaceAll in Options) or (SelStart = PrevSelStart);
|
|
if frReplaceAll in Options then
|
|
begin
|
|
Screen.Cursor := crDefault;
|
|
if ReplacedCount = 0 then S := sRichEditTextNotFound
|
|
else
|
|
begin
|
|
SelStart := OldSelStart;
|
|
S := Format(sRichEditReplaceAllResult, [ReplacedCount]);
|
|
end;
|
|
Application.MessageBox(PChar(S), sRichEditFoundResultCaption,
|
|
MB_ICONINFORMATION);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.EditorChange(Sender: TObject);
|
|
begin
|
|
if Editor = nil then Exit;
|
|
|
|
Editor.OnSelectionChange(Editor);
|
|
SetModified(Editor.Modified);
|
|
dxStatusBar.Panels[1].Text := ActiveMDIChild.Caption;
|
|
TdxStatusBarTextPanelStyle(dxStatusBar.Panels[1].PanelStyle).ImageIndex := 0;
|
|
TdxStatusBarTextPanelStyle(dxStatusBar.Panels[0].PanelStyle).ImageIndex := 2;
|
|
dxBarButtonUndo.Enabled := SendMessage(Editor.Handle, EM_CANUNDO, 0, 0) <> 0;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.EditorSelectionChange(Sender: TObject);
|
|
begin
|
|
with Editor, SelAttributes do
|
|
begin
|
|
FUpdating := True;
|
|
dxBarComboFontSize.OnChange := nil;
|
|
dxBarComboFontName.OnChange := nil;
|
|
dxBarComboFontColor.OnChange := nil;
|
|
try
|
|
dxStatusBar.Panels[0].Text := Format('Line: %3d Col: %3d', [1 + EditorRow, 1 + EditorCol]);
|
|
|
|
dxBarButtonCopy.Enabled := SelLength > 0;
|
|
dxBarButtonCut.Enabled := dxBarButtonCopy.Enabled;
|
|
dxBarButtonPaste.Enabled := SendMessage(Editor.Handle, EM_CANPASTE, 0, 0) <> 0;
|
|
dxBarButtonClear.Enabled := dxBarButtonCopy.Enabled;
|
|
|
|
dxBarComboFontSize.Text := IntToStr(Size);
|
|
dxBarComboFontName.Text := Name;
|
|
dxBarComboFontColor.Color := Color;
|
|
|
|
dxBarButtonBold.Down := fsBold in Style;
|
|
dxBarButtonItalic.Down := fsItalic in Style;
|
|
dxBarButtonUnderline.Down := fsUnderline in Style;
|
|
|
|
dxBarButtonBullets.Down := Boolean(Paragraph.Numbering);
|
|
case Ord(Paragraph.Alignment) of
|
|
0: dxBarButtonAlignLeft.Down := True;
|
|
1: dxBarButtonAlignRight.Down := True;
|
|
2: dxBarButtonCenter.Down := True;
|
|
end;
|
|
dxBarButtonProtected.Down := Protected;
|
|
finally
|
|
FUpdating := False;
|
|
dxBarComboFontSize.OnChange := dxBarComboFontSizeChange;
|
|
dxBarComboFontName.OnChange := dxBarComboFontNameChange;
|
|
dxBarComboFontColor.OnChange := dxBarComboFontColorChange;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function TEBarMDIDemoMainForm.SaveFile(ASaveAs: Boolean): Boolean;
|
|
begin
|
|
if ASaveAs or (FileName = '') then
|
|
begin
|
|
SaveDialog.FileName := FileName;
|
|
Result := SaveDialog.Execute;
|
|
if not Result then Exit;
|
|
FileName := SaveDialog.FileName;
|
|
end;
|
|
Editor.Lines.SaveToFile(FileName);
|
|
dxStatusBar.Panels[1].Text := ActiveMDIChild.Caption;
|
|
SetModified(False);
|
|
Result := True;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.SetModified(Value: Boolean);
|
|
begin
|
|
Editor.Modified := Value;
|
|
if Value then
|
|
begin
|
|
dxStatusBar.Panels[2].Text := 'Modified';
|
|
TdxStatusBarTextPanelStyle(dxStatusBar.Panels[2].PanelStyle).ImageIndex := 1;
|
|
end
|
|
else
|
|
begin
|
|
dxStatusBar.Panels[2].Text := '';
|
|
TdxStatusBarTextPanelStyle(dxStatusBar.Panels[2].PanelStyle).ImageIndex := 4;
|
|
end;
|
|
dxBarButtonSave.Enabled := Value;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.ShowItems(AShow: Boolean);
|
|
var
|
|
AVisible: TdxBarItemVisible;
|
|
begin
|
|
BarManager.LockUpdate := True;
|
|
try
|
|
if not AShow then
|
|
begin
|
|
dxStatusBar.Panels[0].Text := '';
|
|
dxStatusBar.Panels[1].Text := '';
|
|
dxStatusBar.Panels[2].Text := '';
|
|
end;
|
|
BarManager.Groups[0].Enabled := AShow;
|
|
|
|
if AShow then AVisible := ivAlways
|
|
else AVisible := ivInCustomizing;
|
|
|
|
dxBarSubItemEdit.Visible := AVisible;
|
|
dxBarSubItemFormat.Visible := AVisible;
|
|
finally
|
|
BarManager.LockUpdate := False;
|
|
end;
|
|
|
|
TdxStatusBarTextPanelStyle(dxStatusBar.Panels[0].PanelStyle).ImageIndex := 5;
|
|
TdxStatusBarTextPanelStyle(dxStatusBar.Panels[1].PanelStyle).ImageIndex := 3;
|
|
TdxStatusBarTextPanelStyle(dxStatusBar.Panels[2].PanelStyle).ImageIndex := 4;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.FormCreate(Sender: TObject);
|
|
const
|
|
Filter = 'Rich Text Files (*.RTF)|*.RTF';
|
|
begin
|
|
dmCommonData.AboutFormClass := TEBarMDIDemoAboutForm;
|
|
|
|
OpenDialog.Filter := Filter;
|
|
SaveDialog.Filter := Filter;
|
|
OpenDialog.InitialDir := ExtractFilePath(ParamStr(0));
|
|
SaveDialog.InitialDir := OpenDialog.InitialDir;
|
|
ShowItems(False);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonNewClick(Sender: TObject);
|
|
begin
|
|
TEBarMDIDemoChildForm.Create(Application);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonOpenClick(Sender: TObject);
|
|
begin
|
|
OpenDialog.FileName := '';
|
|
if OpenDialog.Execute then
|
|
begin
|
|
with TEBarMDIDemoChildForm.Create(Application) do
|
|
begin
|
|
FileName := OpenDialog.FileName;
|
|
Editor.Lines.LoadFromFile(FileName);
|
|
SetModified(False);
|
|
end;
|
|
dxBarMRUFiles.RemoveItem(OpenDialog.FileName, nil);
|
|
end;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonCloseClick(Sender: TObject);
|
|
begin
|
|
ActiveMDIChild.Close;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonSaveClick(Sender: TObject);
|
|
begin
|
|
SaveFile(False);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonSaveAsClick(Sender: TObject);
|
|
begin
|
|
SaveFile(True);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonPrintClick(Sender: TObject);
|
|
begin
|
|
if PrintDialog.Execute then Editor.Print(FileName);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonExitClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonUndoClick(Sender: TObject);
|
|
begin
|
|
SendMessage(Editor.Handle, EM_UNDO, 0, 0);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonCutClick(Sender: TObject);
|
|
begin
|
|
Editor.CutToClipboard;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonCopyClick(Sender: TObject);
|
|
begin
|
|
Editor.CopyToClipboard;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonPasteClick(Sender: TObject);
|
|
begin
|
|
Editor.PasteFromClipboard;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonClearClick(Sender: TObject);
|
|
begin
|
|
Editor.ClearSelection;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonSelectAllClick(Sender: TObject);
|
|
begin
|
|
Editor.SelectAll;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonFindClick(Sender: TObject);
|
|
begin
|
|
Editor.SelLength := 0;
|
|
FindDialog.Execute;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonReplaceClick(Sender: TObject);
|
|
begin
|
|
Editor.SelLength := 0;
|
|
ReplaceDialog.Execute;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarComboFontNameChange(Sender: TObject);
|
|
begin
|
|
if not FUpdating then
|
|
Editor.SelAttributes.Name := dxBarComboFontName.Text;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarComboFontSizeChange(Sender: TObject);
|
|
begin
|
|
if not FUpdating then
|
|
Editor.SelAttributes.Size := StrToInt(dxBarComboFontSize.Text);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonBoldClick(Sender: TObject);
|
|
begin
|
|
with Editor.SelAttributes do
|
|
if dxBarButtonBold.Down then
|
|
Style := Style + [fsBold]
|
|
else
|
|
Style := Style - [fsBold];
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonItalicClick(Sender: TObject);
|
|
begin
|
|
with Editor.SelAttributes do
|
|
if dxBarButtonItalic.Down then
|
|
Style := Style + [fsItalic]
|
|
else
|
|
Style := Style - [fsItalic];
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonUnderlineClick(Sender: TObject);
|
|
begin
|
|
with Editor.SelAttributes do
|
|
if dxBarButtonUnderline.Down then
|
|
Style := Style + [fsUnderline]
|
|
else
|
|
Style := Style - [fsUnderline];
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarComboFontColorChange(Sender: TObject);
|
|
begin
|
|
Editor.SelAttributes.Color := dxBarComboFontColor.Color;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonBulletsClick(Sender: TObject);
|
|
begin
|
|
Editor.Paragraph.Numbering := TNumberingStyle(dxBarButtonBullets.Down);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonAlignClick(Sender: TObject);
|
|
begin
|
|
if TdxBarLargeButton(Sender).Down then
|
|
Editor.Paragraph.Alignment := TAlignment(TdxBarLargeButton(Sender).Tag)
|
|
else
|
|
Editor.Paragraph.Alignment := taLeftJustify;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonProtectedClick(Sender: TObject);
|
|
begin
|
|
with Editor.SelAttributes do Protected := not Protected;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonFontClick(Sender: TObject);
|
|
begin
|
|
FontDialog.Font.Assign(Editor.SelAttributes);
|
|
if FontDialog.Execute then
|
|
Editor.SelAttributes.Assign(FontDialog.Font);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonArrangeAllClick(Sender: TObject);
|
|
begin
|
|
Tile;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonNextWindowClick(Sender: TObject);
|
|
begin
|
|
Next;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonPreviousWindowClick(Sender: TObject);
|
|
begin
|
|
Previous;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarListWindowsGetData(Sender: TObject);
|
|
begin
|
|
with dxBarListWindows do
|
|
ItemIndex := Items.IndexOfObject(ActiveMDIChild);
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarListWindowsClick(Sender: TObject);
|
|
begin
|
|
with dxBarListWindows do
|
|
TCustomForm(Items.Objects[ItemIndex]).Show;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarMRUFilesClick(Sender: TObject);
|
|
var
|
|
AFileName: String;
|
|
begin
|
|
AFileName := dxBarMRUFiles.Items[dxBarMRUFiles.ItemIndex];
|
|
if FileExists(AFileName) then
|
|
with TEBarMDIDemoChildForm.Create(Application) do
|
|
begin
|
|
FileName := AFileName;
|
|
Editor.Lines.LoadFromFile(FileName);
|
|
SetModified(False);
|
|
end
|
|
else
|
|
Application.MessageBox(PChar(AFileName+#10#13+'File not found.'),'Open',MB_OK or MB_ICONERROR)
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonStdStyleClick(Sender: TObject);
|
|
begin
|
|
BarManager.Style := bmsStandard;
|
|
dxStatusBar.PaintStyle := stpsStandard;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonEnhancedStyleClick(Sender: TObject);
|
|
begin
|
|
BarManager.Style := bmsEnhanced;
|
|
dxStatusBar.PaintStyle := stpsStandard;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonFlatStyleClick(Sender: TObject);
|
|
begin
|
|
BarManager.Style := bmsFlat;
|
|
dxStatusBar.PaintStyle := stpsFlat;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonXPStyleClick(Sender: TObject);
|
|
begin
|
|
BarManager.Style := bmsXP;
|
|
dxStatusBar.PaintStyle := stpsXP;
|
|
end;
|
|
|
|
procedure TEBarMDIDemoMainForm.dxBarButtonOffice11StyleClick(Sender: TObject);
|
|
begin
|
|
BarManager.Style := bmsOffice11;
|
|
dxStatusBar.PaintStyle := stpsOffice11;
|
|
end;
|
|
|
|
end.
|