NO HAY CÓDIGO FUENTE git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.TRichView@1 b34d35ef-135b-4489-b9d1-9916e9c25524
162 lines
5.1 KiB
ObjectPascal
162 lines
5.1 KiB
ObjectPascal
unit MainFrm;
|
||
|
||
interface
|
||
|
||
// Use this define if you want to enable thirdparty Gif support
|
||
// for Delphi 3-2006, using Anders Melander's TGifImage
|
||
// http://www.torry.net/vcl/graphics/gif/gifimage.exe (original)
|
||
// http://www.trichview.com/resources/thirdparty/gifimage.zip (update)
|
||
// For Delphi 2007 or newer, the standard Delphi's TGifImage is used automatically
|
||
{.$DEFINE USEGIFIMAGE}
|
||
|
||
{$I RV_Defs.inc}
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ShellApi,
|
||
Dialogs, StdCtrls, ComCtrls, RVStyle, RVScroll,
|
||
RichView, RVFuncs, ExtCtrls, RVEdit, CRVData, CRVFData, RVOfficeCnv, RVTypes
|
||
|
||
{$IFDEF RICHVIEWDEF2007}
|
||
, GifImg
|
||
{$ELSE}
|
||
{$IFDEF USEGIFIMAGE}
|
||
, GifImage
|
||
{$ENDIF}
|
||
{$ENDIF}
|
||
;
|
||
|
||
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 rveReadHyperlink(Sender: TCustomRichView; const Target,
|
||
Extras: String; DocFormat: TRVLoadFormat; var StyleNo,
|
||
ItemTag: Integer; var ItemName: TRVRawByteString);
|
||
procedure rveJump(Sender: TObject; id: Integer);
|
||
procedure rveWriteHyperlink(Sender: TCustomRichView; id: Integer;
|
||
RVData: TCustomRVData; ItemNo: Integer; SaveFormat: TRVSaveFormat;
|
||
var Target, Extras: string);
|
||
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;
|
||
sd.Filter := 'RTF (Built-In RichView Export)|*.rtf|'+rvc.GetExportFilter;
|
||
|
||
rve.Clear;
|
||
rve.AddNL('This demo shows how to use Microsoft<66> 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;
|
||
{==============================================================================}
|
||
{$IFDEF RICHVIEWDEF2007}
|
||
initialization
|
||
RegisterClass(TGifImage);
|
||
{$ELSE}
|
||
{$IFDEF USEGIFIMAGE}
|
||
initialization
|
||
RegisterClass(TGifImage);
|
||
{$ENDIF}
|
||
{$ENDIF}
|
||
|
||
end.
|