
* added SaveRTFFile function to utilities * modified IDE RTF editor to allow saving a file git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5305 8e941d3f-bd1b-0410-a28a-d453659cc2b4
172 lines
4.2 KiB
ObjectPascal
172 lines
4.2 KiB
ObjectPascal
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.
|
|
|