lazarus-ccr/components/xdev_toolkit/ViewWith.pas

73 lines
1.6 KiB
ObjectPascal

program ViewWith;
{
Test program for ViewDoc unit.
}
{$IFDEF FPC}
{$MODE Delphi}
{$ELSE}
{$APPTYPE CONSOLE}
{$ENDIF}
{$R+,Q+}
uses
SysUtils,
ViewDoc;
var
VwrIdx : Integer;
Viewer : Integer;
Options : TViewerOptions;
InStr : string;
ErrorMsg : string;
Done : Boolean;
begin
if ParamCount < 2 then
begin
WriteLn('Usage: ViewWith viewername docfilename [-t] [-d]');
Exit;
end;
Viewer := 0;
for VwrIdx := 1 to GetViewerCount do
begin
if SameText(ParamStr(1), GetViewerName(VwrIdx)) then
Viewer := VwrIdx;
end;
if Viewer = 0 then
WriteLn('Specified viewer not supported - using first viewer found');
Options := [];
if FindCmdLineSwitch('t', ['-'], True) then {Treat file as template?}
Options := Options + [ovwUseAsTemplate];
if FindCmdLineSwitch('d', ['-'], True) then {Delete file before exiting?}
begin
Options := Options + [ovwAddToDeleteList];
Write('File will be deleted when done viewing - is this okay (Y/N)? ');
ReadLn(InStr);
if CompareText(InStr, 'y') <> 0 then
Exit;
end;
if not ViewDocument(ParamStr(2), Viewer, Options, ErrorMsg) then
begin
WriteLn(ErrorMsg);
Exit;
end;
if FindCmdLineSwitch('d', ['-'], True) and FileExists(ParamStr(2)) then
begin
repeat
Write('Press Enter when ready to delete file (or Ctrl+C to exit): ');
ReadLn(InStr);
Done := DeleteViewedDocs;
if not Done then
WriteLn(' Unable to delete file - may still be open in viewer');
until Done;
end;
end.