1
0
Files
applications
bindings
components
Comba_Animation
aboutcomponent
acs
beepfp
callite
chelper
chemtext
cmdline
cmdlinecfg
colorpalette
cryptini
csvdocument
epiktimer
everettrandom
examplecomponent
exctrls
extrasyn
fpexif
fpsound
fpspreadsheet
fractions
freetypepascal
geckoport
gradcontrols
grid_semaphor
industrialstuff
iosdesigner
iphonelazext
jujiboutils
jvcllaz
kcontrols
lazautoupdate
lazbarcodes
lazmapviewer
lclextensions
longtimer
manualdock
mbColorLib
mplayer
multithreadprocs
nvidia-widgets
onguard
orpheus
playsoundpackage
poweredby
powerpdf
rgbgraphics
richmemo
carbon
cocoa
gtk2
ide
richmemo_design.lpk
richmemo_design.pas
richmemopackage.lrs
richmemoregister.pas
rtfeditpropdialog.lfm
rtfeditpropdialog.pas
qt
qt5
samples
win32
richmemo.pas
richmemofactory.pas
richmemohelpers.pas
richmemopackage.lpk
richmemopackage.pas
richmemortf.pas
richmemoutils.pas
rtfdata.inc
rtfparspre211.pas
wsrichmemo.pas
richview
rtfview
rx
scrolltext
smnetgradient
spktoolbar
splashabout
svn
systools
tdi
thtmlport
tparadoxdataset
tvplanit
xdev_toolkit
zlibar
zmsql
examples
image_sources
lclbindings
wst
lazarus-ccr/components/richmemo/ide/rtfeditpropdialog.pas

172 lines
4.2 KiB
ObjectPascal
Raw Normal View History

unit RtfEditPropDialog;
{$mode objfpc}{$H+}
interface
uses
SysUtils, Forms, Graphics, Dialogs, StdCtrls, Buttons, RichMemo, RichMemoUtils;
type
{ TRTFEditDialog }
TRTFEditDialog = class(TForm)
btnCA: TSpeedButton;
btnJA: TSpeedButton;
btnLA: TSpeedButton;
btnRA: TSpeedButton;
btnLoad: TButton;
btnClear: TButton;
btnOk: TButton;
btnCancel: TButton;
btnSave: TButton;
ColorDialog1: TColorDialog;
FontDialog1: TFontDialog;
RtfOpenDialog: TOpenDialog;
RichMemo1: TRichMemo;
btnBold: TSpeedButton;
btnItalic: TSpeedButton;
btnUnderline: TSpeedButton;
btnFont: TSpeedButton;
btnColor: TSpeedButton;
RtfSaveDialog: TSaveDialog;
procedure btnCAClick(Sender: TObject);
procedure btnClearClick(Sender: TObject);
procedure btnItalicClick(Sender: TObject);
procedure btnJAClick(Sender: TObject);
procedure btnLAClick(Sender: TObject);
procedure btnLoadClick(Sender: TObject);
procedure btnRAClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnBoldClick(Sender: TObject);
procedure btnUnderlineClick(Sender: TObject);
procedure btnFontClick(Sender: TObject);
procedure btnColorClick(Sender: TObject);
procedure RichMemo1Change(Sender: TObject);
private
procedure FontStyleModify(fs: TFontStyle);
end;
var
RTFEditDialog: TRTFEditDialog = nil;
implementation
{$R *.lfm}
{ TRTFEditDialog }
procedure TRTFEditDialog.btnLAClick(Sender: TObject);
begin
RichMemo1.SetParaAlignment( RichMemo1.SelStart,
RichMemo1.SelLength, paLeft);
end;
procedure TRTFEditDialog.btnCAClick(Sender: TObject);
begin
RichMemo1.SetParaAlignment( RichMemo1.SelStart,
RichMemo1.SelLength, paCenter);
end;
procedure TRTFEditDialog.btnClearClick(Sender: TObject);
begin
RichMemo1.Clear;
RichMemo1Change(Sender);
end;
procedure TRTFEditDialog.btnItalicClick(Sender: TObject);
begin
FontStyleModify(fsItalic);
end;
procedure TRTFEditDialog.btnJAClick(Sender: TObject);
begin
RichMemo1.SetParaAlignment( RichMemo1.SelStart,
RichMemo1.SelLength, paJustify);
end;
procedure TRTFEditDialog.btnLoadClick(Sender: TObject);
begin
if RtfOpenDialog.Execute then
LoadRTFFile( RichMemo1, RtfOpenDialog.FileName);
end;
procedure TRTFEditDialog.btnRAClick(Sender: TObject);
begin
RichMemo1.SetParaAlignment( RichMemo1.SelStart,
RichMemo1.SelLength, paRight);
end;
procedure TRTFEditDialog.btnSaveClick(Sender: TObject);
begin
if RtfSaveDialog.FileName = '' then
RtfSaveDialog.FileName := 'New document.rtf';
if RtfSaveDialog.Execute and (RtfSaveDialog.FileName <> '') then
SaveRTFFile( RichMemo1, RtfSaveDialog.FileName);
end;
procedure TRTFEditDialog.btnBoldClick(Sender: TObject);
begin
FontStyleModify(fsBold);
end;
procedure TRTFEditDialog.btnUnderlineClick(Sender: TObject);
begin
FontStyleModify(fsUnderline);
end;
procedure TRTFEditDialog.btnFontClick(Sender: TObject);
var
f : TFontParams;
begin
RichMemo1.GetTextAttributes(RichMemo1.SelStart, f);
FontDialog1.Font.Name:=f.Name;
FontDialog1.Font.Size:=f.Size;
FontDialog1.Font.Style:=f.Style;
FontDialog1.Font.Color:=f.Color;
if FontDialog1.Execute then begin
RichMemo1.SetRangeParams(RichMemo1.SelStart, RichMemo1.SelLength
, [tmm_Color, tmm_Size, tmm_Name]
, FontDialog1.Font.Name
, FontDialog1.Font.Size
, FontDialog1.Font.Color, [], []);
end;
end;
procedure TRTFEditDialog.btnColorClick(Sender: TObject);
var
f : TFontParams;
begin
RichMemo1.GetTextAttributes(RichMemo1.SelStart, f);
ColorDialog1.Color:=f.Color;
if ColorDialog1.Execute then begin
RichMemo1.SetRangeColor( RichMemo1.SelStart, RichMemo1.SelLength,
ColorDialog1.Color);
end;
end;
procedure TRTFEditDialog.RichMemo1Change(Sender: TObject);
begin
btnSave.Enabled := RichMemo1.Lines.Count > 0;
end;
procedure TRTFEditDialog.FontStyleModify(fs: TFontStyle);
var
f : TFontParams;
rm : TFontStyles;
add : TFontStyles;
begin
RichMemo1.GetTextAttributes(RichMemo1.SelStart, f);
if fs in f.Style then begin
rm:=[fs]; add:=[];
end else begin
rm:=[]; add:=[fs];
end;
RichMemo1.SetRangeParams(RichMemo1.SelStart, RichMemo1.SelLength
, [tmm_Styles] , '', 0, 0, add, rm);
end;
end.