- Limpieza de código para NO usar skins de DevExpress. git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@541 0c75b7a4-871f-7646-8a2f-f78d34cc349f
240 lines
6.9 KiB
ObjectPascal
240 lines
6.9 KiB
ObjectPascal
unit uViewRichEditor;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uViewBase, Menus, cxLookAndFeelPainters, cxGraphics, cxSpinEdit,
|
|
cxSpinButton, cxMaskEdit, cxFontNameComboBox, cxControls, cxContainer, cxEdit,
|
|
cxTextEdit, cxDropDownEdit, cxColorComboBox, StdCtrls, cxButtons, ComCtrls,
|
|
ToolWin, ImgList, ActnList, TBXExtItems, TB2ExtItems, TB2Item, TBX, TB2Dock,
|
|
TB2Toolbar, PngImageList, cxMemo, cxRichEdit, ExtCtrls, DB, uDAInterfaces,
|
|
uDADataTable, cxDBRichEdit;
|
|
|
|
type
|
|
IViewRichEditor = interface(IViewBase)
|
|
['{C29F4555-A57A-436D-BF23-2E2F013BC13D}']
|
|
end;
|
|
|
|
|
|
TfrViewRichEditor = class(TfrViewBase, IViewRichEditor)
|
|
ActionList: TActionList;
|
|
actEditCut: TAction;
|
|
actEditCopy: TAction;
|
|
actEditPaste: TAction;
|
|
actEditFont: TAction;
|
|
actBullets: TAction;
|
|
pmColorSchemes: TPopupMenu;
|
|
miStandard: TMenuItem;
|
|
miHTML: TMenuItem;
|
|
miWeb: TMenuItem;
|
|
miWebSorted: TMenuItem;
|
|
ToolbarImages: TImageList;
|
|
TBXDock1: TTBXDock;
|
|
TBXToolbar1: TTBXToolbar;
|
|
bBold: TTBXItem;
|
|
bItalic: TTBXItem;
|
|
TBXSeparatorItem1: TTBXSeparatorItem;
|
|
bUnderline: TTBXItem;
|
|
TBXSeparatorItem2: TTBXSeparatorItem;
|
|
TBXItem5: TTBXItem;
|
|
TBXItem6: TTBXItem;
|
|
TBXItem7: TTBXItem;
|
|
TBXSeparatorItem4: TTBXSeparatorItem;
|
|
bAlignLeft: TTBXItem;
|
|
bAlignCenter: TTBXItem;
|
|
bAlignRight: TTBXItem;
|
|
LargeImages: TPngImageList;
|
|
SmallImages: TPngImageList;
|
|
TBControlItem1: TTBControlItem;
|
|
fcbFontName: TcxFontNameComboBox;
|
|
TBXColorItem1: TTBXColorItem;
|
|
RichEdit: TcxDBRichEdit;
|
|
TBControlItem2: TTBControlItem;
|
|
meFontSize: TcxMaskEdit;
|
|
TBControlItem3: TTBControlItem;
|
|
cxSpinButton: TcxSpinButton;
|
|
TBXSeparatorItem3: TTBXSeparatorItem;
|
|
TBXSeparatorItem5: TTBXSeparatorItem;
|
|
bBullets: TTBXItem;
|
|
procedure actBulletsExecute(Sender: TObject);
|
|
procedure actEditCutExecute(Sender: TObject);
|
|
procedure actEditCopyExecute(Sender: TObject);
|
|
procedure actEditPasteExecute(Sender: TObject);
|
|
procedure RichEditPropertiesChange(Sender: TObject);
|
|
procedure CustomViewShow(Sender: TObject);
|
|
procedure RichEditPropertiesSelectionChange(Sender: TObject);
|
|
procedure cxFontNameComboBox1PropertiesChange(Sender: TObject);
|
|
procedure CustomViewCreate(Sender: TObject);
|
|
procedure fcbFontNamePropertiesInitPopup(Sender: TObject);
|
|
procedure meFontSizePropertiesChange(Sender: TObject);
|
|
procedure bBoldClick(Sender: TObject);
|
|
procedure bItalicClick(Sender: TObject);
|
|
procedure bUnderlineClick(Sender: TObject);
|
|
procedure bAlignLeftClick(Sender: TObject);
|
|
procedure bAlignCenterClick(Sender: TObject);
|
|
procedure bAlignRightClick(Sender: TObject);
|
|
procedure bBulletsClick(Sender: TObject);
|
|
private
|
|
FUpdating: Boolean;
|
|
FChanged: Boolean;
|
|
function CurrText: TTextAttributes;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TfrViewRichEditor.actBulletsExecute(Sender: TObject);
|
|
begin
|
|
if FUpdating or (RichEdit = nil) then Exit;
|
|
RichEdit.Paragraph.Numbering := TNumberingStyle(actBullets.Checked);
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.actEditCopyExecute(Sender: TObject);
|
|
begin
|
|
RichEdit.CopyToClipboard;
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.actEditCutExecute(Sender: TObject);
|
|
begin
|
|
RichEdit.CutToClipboard;
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.actEditPasteExecute(Sender: TObject);
|
|
begin
|
|
RichEdit.PasteFromClipboard;
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.bAlignCenterClick(Sender: TObject);
|
|
begin
|
|
if FUpdating or (RichEdit = nil) then Exit;
|
|
RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag);
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.bAlignLeftClick(Sender: TObject);
|
|
begin
|
|
if FUpdating or (RichEdit = nil) then Exit;
|
|
RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag);
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.bAlignRightClick(Sender: TObject);
|
|
begin
|
|
if FUpdating or (RichEdit = nil) then Exit;
|
|
RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag);
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.bBoldClick(Sender: TObject);
|
|
begin
|
|
if FUpdating then Exit;
|
|
if bBold.Checked then
|
|
CurrText.Style := CurrText.Style + [fsBold]
|
|
else
|
|
CurrText.Style := CurrText.Style - [fsBold];
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.bBulletsClick(Sender: TObject);
|
|
begin
|
|
if FUpdating or (RichEdit = nil) then Exit;
|
|
RichEdit.Paragraph.Numbering := TNumberingStyle(bBullets.Checked);
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.bItalicClick(Sender: TObject);
|
|
begin
|
|
if FUpdating then Exit;
|
|
if bItalic.Checked then
|
|
CurrText.Style := CurrText.Style + [fsItalic]
|
|
else
|
|
CurrText.Style := CurrText.Style - [fsItalic];
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.bUnderlineClick(Sender: TObject);
|
|
begin
|
|
if FUpdating then Exit;
|
|
if bUnderline.Checked then
|
|
CurrText.Style := CurrText.Style + [fsUnderline]
|
|
else
|
|
CurrText.Style := CurrText.Style - [fsUnderline];
|
|
end;
|
|
|
|
function TfrViewRichEditor.CurrText: TTextAttributes;
|
|
begin
|
|
{ if RichEdit.SelLength > 0 then}
|
|
Result := RichEdit.SelAttributes
|
|
{ else
|
|
Result := RichEdit.DefAttributes;}
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.CustomViewCreate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
CurrText.Name := 'Tahoma';
|
|
CurrText.Size := 11;
|
|
RichEditPropertiesSelectionChange(Self);
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.CustomViewShow(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
FChanged := False;
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.cxFontNameComboBox1PropertiesChange(
|
|
Sender: TObject);
|
|
begin
|
|
if FUpdating then Exit;
|
|
CurrText.Name := TcxFontNameComboBox(Sender).Text;
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.fcbFontNamePropertiesInitPopup(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
fcbFontName.Properties.FontPreview.FontStyle := CurrText.Style;
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.meFontSizePropertiesChange(Sender: TObject);
|
|
begin
|
|
if FUpdating then Exit;
|
|
if meFontSize.EditText <> '' then
|
|
CurrText.Size := StrToInt(meFontSize.EditText)
|
|
else
|
|
CurrText.Size := 0;
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.RichEditPropertiesChange(Sender: TObject);
|
|
begin
|
|
FChanged := True;
|
|
end;
|
|
|
|
procedure TfrViewRichEditor.RichEditPropertiesSelectionChange(Sender: TObject);
|
|
begin
|
|
with RichEdit.Paragraph do
|
|
try
|
|
FUpdating := True;
|
|
bBold.Checked := fsBold in CurrText.Style;
|
|
bItalic.Checked := fsItalic in CurrText.Style;
|
|
bUnderline.Checked := fsUnderline in CurrText.Style;
|
|
bBullets.Checked := Boolean(Numbering);
|
|
meFontSize.Text := IntToStr(CurrText.Size);
|
|
fcbFontName.EditValue := CurrText.Name;
|
|
//cxColorComboBox.EditValue := CurrText.Color;
|
|
case Ord(Alignment) of
|
|
0: begin
|
|
bAlignLeft.Checked := True;
|
|
end;
|
|
1: begin
|
|
bAlignRight.Checked := True;
|
|
end;
|
|
2: begin
|
|
bAlignCenter.Checked := True;
|
|
end;
|
|
end;
|
|
finally
|
|
FUpdating := False;
|
|
end;
|
|
end;
|
|
|
|
end.
|