Componentes.Terceros.TRichView/12.0.4/Demos/Delphi/OfficeConverters/MainFrm.pas
david fddb8c1dff Importación inicial con versión 12.0.4
NO HAY CÓDIGO FUENTE

git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.TRichView@1 b34d35ef-135b-4489-b9d1-9916e9c25524
2010-01-11 12:26:42 +00:00

162 lines
5.1 KiB
ObjectPascal
Raw Permalink Blame History

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.