NO HAY CÓDIGO FUENTE git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.TRichView@1 b34d35ef-135b-4489-b9d1-9916e9c25524
145 lines
4.6 KiB
ObjectPascal
145 lines
4.6 KiB
ObjectPascal
unit MainFrm;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ShellApi,
|
|
Dialogs, StdCtrls, ComCtrls, RVStyle, RVScroll,
|
|
RichView, RVFuncs, ExtCtrls, RVEdit, CRVData, CRVFData, RVOfficeCnv, RVTypes,
|
|
GifImg, PngImage;
|
|
|
|
type
|
|
TfrmMain = class(TForm)
|
|
od: TOpenDialog;
|
|
rvs: TRVStyle;
|
|
rve: TRichViewEdit;
|
|
Panel1: TPanel;
|
|
btnOpen: TButton;
|
|
rvc: TRVOfficeConverter;
|
|
btnSave: TButton;
|
|
sd: TSaveDialog;
|
|
pb: TProgressBar;
|
|
procedure btnOpenClick(Sender: TObject);
|
|
procedure rvcConverting(Sender: TObject; Percent: Integer);
|
|
procedure btnSaveClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure rveJump(Sender: TObject; id: Integer);
|
|
procedure rveWriteHyperlink(Sender: TCustomRichView; id: Integer;
|
|
RVData: TCustomRVData; ItemNo: Integer; SaveFormat: TRVSaveFormat;
|
|
var Target, Extras: string);
|
|
procedure rveReadHyperlink(Sender: TCustomRichView; const Target,
|
|
Extras: string; DocFormat: TRVLoadFormat; var StyleNo, ItemTag: Integer;
|
|
var ItemName: TRVRawByteString);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmMain: TfrmMain;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
{====================== Import and export =====================================}
|
|
procedure TfrmMain.FormCreate(Sender: TObject);
|
|
begin
|
|
od.Filter := 'RTF (Built-In RichView Import)|*.rtf|'+rvc.GetImportFilter;
|
|
od.InitialDir := ExtractFilePath(Application.ExeName)+'test\';
|
|
sd.Filter := 'RTF (Built-In RichView Export)|*.rtf|'+rvc.GetExportFilter;
|
|
|
|
rve.Clear;
|
|
rve.AddNL('This demo shows how to use Microsoft® Office text converters.',0,0);
|
|
rve.AddNL(
|
|
'First items in filters (file masks) of the file-selection dialogs are RTF import/export '+
|
|
'by the component itself. Others use converters.',0,0);
|
|
rve.AddNL('For HTML import testing, look at test/test.htm.',0,0);
|
|
rve.AddNL('After loading, Ctrl+click any hypertext link to view its target.',0,0);
|
|
rve.AddNL(
|
|
'You''ll see option for HTML export via converters. You can use it, but native RichView HTML'+
|
|
' export gives much better results.',0,0);
|
|
rve.Format;
|
|
end;
|
|
{------------------------------------------------------------------------------}
|
|
procedure TfrmMain.btnOpenClick(Sender: TObject);
|
|
var r: Boolean;
|
|
begin
|
|
if not od.Execute then
|
|
exit;
|
|
rve.Clear;
|
|
rve.Format;
|
|
rve.Update;
|
|
|
|
rve.Clear;
|
|
if od.FilterIndex=1 then
|
|
r := rve.LoadRTF(od.FileName)
|
|
else begin
|
|
pb.Visible := True;
|
|
r:= rvc.ImportRV(od.FileName, rve, od.FilterIndex-2);
|
|
end;
|
|
if not r then
|
|
Application.MessageBox('Error','Error',0);
|
|
pb.Visible := False;
|
|
rve.Format;
|
|
rve.SetFocus;
|
|
end;
|
|
{------------------------------------------------------------------------------}
|
|
procedure TfrmMain.btnSaveClick(Sender: TObject);
|
|
var r: Boolean;
|
|
begin
|
|
if not sd.Execute then
|
|
exit;
|
|
pb.Visible := True;
|
|
if sd.FilterIndex=1 then
|
|
r := rve.SaveRTF(sd.FileName,False)
|
|
else begin
|
|
pb.Visible := True;
|
|
r:= rvc.ExportRV(sd.FileName, rve, sd.FilterIndex-2);
|
|
end;
|
|
if not r then
|
|
Application.MessageBox('Error','Error',0);
|
|
pb.Visible := False;
|
|
rve.SetFocus;
|
|
end;
|
|
{------------------------------------------------------------------------------}
|
|
procedure TfrmMain.rvcConverting(Sender: TObject; Percent: Integer);
|
|
begin
|
|
pb.Position := Percent;
|
|
end;
|
|
{============================ Hypertext =======================================}
|
|
// We store URLs in tags
|
|
procedure TfrmMain.rveReadHyperlink(Sender: TCustomRichView; const Target,
|
|
Extras: string; DocFormat: TRVLoadFormat; var StyleNo, ItemTag: Integer;
|
|
var ItemName: TRVRawByteString);
|
|
begin
|
|
ItemTag := Integer(StrNew(PChar(Target)));
|
|
end;
|
|
{------------------------------------------------------------------------------}
|
|
procedure TfrmMain.rveWriteHyperlink(Sender: TCustomRichView; id: Integer;
|
|
RVData: TCustomRVData; ItemNo: Integer; SaveFormat: TRVSaveFormat; var Target,
|
|
Extras: string);
|
|
begin
|
|
Target := PChar(RVData.GetItemTag(ItemNo));
|
|
end;
|
|
{------------------------------------------------------------------------------}
|
|
procedure TfrmMain.rveJump(Sender: TObject; id: Integer);
|
|
var ItemNo: Integer;
|
|
RVData: TCustomRVFormattedData;
|
|
s: String;
|
|
begin
|
|
rve.GetJumpPointLocation(id, RVData, ItemNo);
|
|
s := PChar(RVData.GetItemTag(ItemNo));
|
|
ShellExecute(0, 'open', PChar(s), nil, nil, SW_SHOW);
|
|
end;
|
|
|
|
{==============================================================================}
|
|
|
|
initialization
|
|
RegisterClass(TGifImage);
|
|
RegisterClass(TPngImage);
|
|
|
|
|
|
end.
|