diff --git a/applications/fpvviewer/fpvectorialsrc/fpvectorial.pas b/applications/fpvviewer/fpvectorialsrc/fpvectorial.pas index 0479f47d2..43ab9ba97 100644 --- a/applications/fpvviewer/fpvectorialsrc/fpvectorial.pas +++ b/applications/fpvviewer/fpvectorialsrc/fpvectorial.pas @@ -240,7 +240,8 @@ type { Base methods } constructor Create; destructor Destroy; override; - procedure WriteToFile(AFileName: string; AFormat: TvVectorialFormat); + procedure WriteToFile(AFileName: string; AFormat: TvVectorialFormat); overload; + procedure WriteToFile(AFileName: string); overload; procedure WriteToStream(AStream: TStream; AFormat: TvVectorialFormat); procedure WriteToStrings(AStrings: TStrings; AFormat: TvVectorialFormat); procedure ReadFromFile(AFileName: string; AFormat: TvVectorialFormat); overload; @@ -883,6 +884,14 @@ begin end; end; +procedure TvVectorialDocument.WriteToFile(AFileName: string); +var + lFormat: TvVectorialFormat; +begin + lFormat := GetFormatFromExtension(ExtractFileExt(AFileName)); + WriteToFile(AFileName, lFormat); +end; + {@@ Writes the document to a stream } @@ -938,15 +947,10 @@ end; } procedure TvVectorialDocument.ReadFromFile(AFileName: string); var - lExt: string; + lFormat: TvVectorialFormat; begin - lExt := ExtractFileExt(AFileName); - if lExt = STR_PDF_EXTENSION then ReadFromFile(AFileName, vfPDF) - else if lExt = STR_POSTSCRIPT_EXTENSION then ReadFromFile(AFileName, vfPostScript) - else if lExt = STR_SVG_EXTENSION then ReadFromFile(AFileName, vfSVG) - else if lExt = STR_CORELDRAW_EXTENSION then ReadFromFile(AFileName, vfCorelDrawCDR) - else if lExt = STR_WINMETAFILE_EXTENSION then ReadFromFile(AFileName, vfWindowsMetafileWMF) - else if lExt = STR_AUTOCAD_EXCHANGE_EXTENSION then ReadFromFile(AFileName, vfDXF); + lFormat := GetFormatFromExtension(ExtractFileExt(AFileName)); + ReadFromFile(AFileName, lFormat); end; {@@ @@ -995,6 +999,7 @@ begin else if AnsiCompareText(lExt, STR_SVG_EXTENSION) = 0 then Result := vfSVG else if AnsiCompareText(lExt, STR_CORELDRAW_EXTENSION) = 0 then Result := vfCorelDrawCDR else if AnsiCompareText(lExt, STR_WINMETAFILE_EXTENSION) = 0 then Result := vfWindowsMetafileWMF + else if AnsiCompareText(lExt, STR_AUTOCAD_EXCHANGE_EXTENSION) = 0 then Result := vfDXF else raise Exception.Create('TvVectorialDocument.GetFormatFromExtension: The extension (' + lExt + ') doesn''t match any supported formats.'); end; diff --git a/applications/fpvviewer/fpvv_mainform.lfm b/applications/fpvviewer/fpvv_mainform.lfm index 00ff4cfda..980ad1fd0 100644 --- a/applications/fpvviewer/fpvv_mainform.lfm +++ b/applications/fpvviewer/fpvv_mainform.lfm @@ -1,7 +1,7 @@ object frmFPVViewer: TfrmFPVViewer - Left = 186 + Left = 318 Height = 473 - Top = 137 + Top = 299 Width = 375 Caption = 'Free Pascal Vectorial Viewer' ClientHeight = 473 @@ -11,7 +11,7 @@ object frmFPVViewer: TfrmFPVViewer LCLVersion = '0.9.31' object editFileName: TFileNameEdit Left = 8 - Height = 22 + Height = 25 Top = 8 Width = 304 DialogOptions = [] @@ -33,7 +33,7 @@ object frmFPVViewer: TfrmFPVViewer end object spinScale: TFloatSpinEdit Left = 72 - Height = 16 + Height = 25 Top = 72 Width = 168 DecimalPlaces = 6 @@ -45,9 +45,9 @@ object frmFPVViewer: TfrmFPVViewer end object Label1: TLabel Left = 8 - Height = 17 + Height = 18 Top = 79 - Width = 56 + Width = 58 Caption = 'Scale by:' ParentColor = False end @@ -66,8 +66,8 @@ object frmFPVViewer: TfrmFPVViewer AnchorSideBottom.Control = Owner AnchorSideBottom.Side = asrBottom Left = 0 - Height = 345 - Top = 128 + Height = 369 + Top = 104 Width = 375 PageIndex = 0 Anchors = [akTop, akLeft, akRight, akBottom] @@ -76,8 +76,8 @@ object frmFPVViewer: TfrmFPVViewer object pageViewer: TPage end object Page2: TPage - ClientWidth = 528 - ClientHeight = 624 + ClientWidth = 4224 + ClientHeight = 4992 object DXFTreeView: TTreeView Left = 8 Height = 313 diff --git a/applications/fpvviewer/fpvv_mainform.pas b/applications/fpvviewer/fpvv_mainform.pas index 9739af908..0ed21704c 100644 --- a/applications/fpvviewer/fpvv_mainform.pas +++ b/applications/fpvviewer/fpvv_mainform.pas @@ -67,7 +67,7 @@ begin Vec := TvVectorialDocument.Create; try - Vec.ReadFromFile(editFileName.FileName, vfDXF); + Vec.ReadFromFile(editFileName.FileName); // We need to be robust, because sometimes the document size won't be given // also give up drawing everything if we need more then 4MB of RAM for the image