From 814eba3c6a4cbb5b4185568954c1bdc5f24de608 Mon Sep 17 00:00:00 2001 From: wp Date: Fri, 12 Aug 2016 16:27:33 +0000 Subject: [PATCH] fpvectorial: Add demo program for wmf git-svn-id: trunk@52797 - --- .gitattributes | 4 + .../fpvectorial/examples/wmf_mainform.lfm | 197 +++++++++++++++++ .../fpvectorial/examples/wmf_mainform.pas | 200 ++++++++++++++++++ components/fpvectorial/examples/wmfviewer.lpi | 89 ++++++++ components/fpvectorial/examples/wmfviewer.lpr | 21 ++ 5 files changed, 511 insertions(+) create mode 100644 components/fpvectorial/examples/wmf_mainform.lfm create mode 100644 components/fpvectorial/examples/wmf_mainform.pas create mode 100644 components/fpvectorial/examples/wmfviewer.lpi create mode 100644 components/fpvectorial/examples/wmfviewer.lpr diff --git a/.gitattributes b/.gitattributes index 9f7e9cda35..bee3ce5bd5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1525,6 +1525,10 @@ components/fpvectorial/examples/fpvtextwritetest2.lpi svneol=native#text/plain components/fpvectorial/examples/fpvtextwritetest2.pas svneol=native#text/plain components/fpvectorial/examples/fpvwritetest.lpi svneol=native#text/plain components/fpvectorial/examples/fpvwritetest.pas svneol=native#text/plain +components/fpvectorial/examples/wmf_mainform.lfm svneol=native#text/plain +components/fpvectorial/examples/wmf_mainform.pas svneol=native#text/plain +components/fpvectorial/examples/wmfviewer.lpi svneol=native#text/plain +components/fpvectorial/examples/wmfviewer.lpr svneol=native#text/plain components/fpvectorial/fpvectbuildunit.pas svneol=native#text/plain components/fpvectorial/fpvectorial.pas svneol=native#text/plain components/fpvectorial/fpvectorial.xml svneol=native#text/plain diff --git a/components/fpvectorial/examples/wmf_mainform.lfm b/components/fpvectorial/examples/wmf_mainform.lfm new file mode 100644 index 0000000000..1018a04236 --- /dev/null +++ b/components/fpvectorial/examples/wmf_mainform.lfm @@ -0,0 +1,197 @@ +object Form1: TForm1 + Left = 218 + Height = 511 + Top = 155 + Width = 738 + Caption = 'Form1' + ClientHeight = 511 + ClientWidth = 738 + OnCreate = FormCreate + OnDestroy = FormDestroy + LCLVersion = '1.7' + object LeftPanel: TPanel + Left = 0 + Height = 511 + Top = 0 + Width = 267 + Align = alLeft + BevelOuter = bvNone + ClientHeight = 511 + ClientWidth = 267 + TabOrder = 0 + object Splitter1: TSplitter + Cursor = crVSplit + Left = 0 + Height = 5 + Top = 221 + Width = 267 + Align = alTop + ResizeAnchor = akTop + end + object ShellListView: TShellListView + Left = 0 + Height = 285 + Top = 226 + Width = 267 + Align = alClient + Color = clDefault + HideSelection = False + ReadOnly = True + SortColumn = 0 + SortType = stText + TabOrder = 1 + OnSelectItem = ShellListViewSelectItem + ObjectTypes = [otNonFolders] + ShellTreeView = ShellTreeView + end + object ShellTreeView: TShellTreeView + Left = 0 + Height = 221 + Top = 0 + Width = 267 + Align = alTop + FileSortType = fstNone + HideSelection = False + Images = ImageList + TabOrder = 2 + OnGetImageIndex = ShellTreeViewGetImageIndex + OnGetSelectedIndex = ShellTreeViewGetSelectedIndex + Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw] + ObjectTypes = [otFolders] + ShellListView = ShellListView + end + end + object Splitter2: TSplitter + Left = 267 + Height = 511 + Top = 0 + Width = 5 + end + object ScrollBox1: TScrollBox + Left = 272 + Height = 511 + Top = 0 + Width = 466 + HorzScrollBar.Increment = 27 + HorzScrollBar.Page = 272 + HorzScrollBar.Smooth = True + HorzScrollBar.Tracking = True + VertScrollBar.Increment = 18 + VertScrollBar.Page = 183 + VertScrollBar.Smooth = True + VertScrollBar.Tracking = True + Align = alClient + ClientHeight = 507 + ClientWidth = 462 + TabOrder = 2 + object Image1: TImage + Left = 0 + Height = 183 + Top = 0 + Width = 272 + end + end + object ImageList: TImageList + left = 96 + top = 72 + Bitmap = { + 4C69030000001000000010000000FFFFFF00FFFFFF000088CC610088CC810088 + CC810088CC810088CC810088CC810088CC810088CC810088CC810088CC810088 + CC810088CC610088CB00FFFFFF00FFFFFF00FFFFFF000087CA82B1F5FFFFAEF2 + FFFFAEF2FFFFAEF2FFFFAEF2FFFFAEF2FFFFAEF2FFFFAEF2FFFFAEF2FFFFB1F5 + FFFF0087CA820087CA00FFFFFF00FFFFFF00FFFFFF000086C984ACF1FFFFA7EC + FEFFA7ECFEFFA7ECFEFFA7ECFEFFA7ECFEFFA7ECFEFFA7ECFEFFA7ECFEFFACF1 + FFFF0086C9840086C900FFFFFF00FFFFFF00FFFFFF000084C686A9EEFDFFA4E9 + FCFFA4E9FCFFA4E9FCFFA4E9FCFFA4E9FCFFA4E9FCFFA4E9FCFFA4E9FCFFA9EE + FDFF0084C6860084C600FFFFFF00FFFFFF00FFFFFF000083C489A6EBFCFFA1E6 + FBFFA1E6FBFFA1E6FBFFA1E6FBFFA1E6FBFFA1E6FBFFA1E6FBFFA1E6FBFFA6EB + FCFF0083C4890083C400FFFFFF00FFFFFF00FFFFFF000081C18BA3E8FBFF9DE3 + F9FF9DE3F9FF9DE3F9FF9DE3F9FF9DE3F9FF9DE3F9FF9DE3F9FF9DE3F9FFA3E8 + FBFF0081C18B0081C100FFFFFF00FFFFFF00FFFFFF00007FBE8E9EE5F9FF98DF + F6FF98DFF6FF98DFF6FF98DFF6FF98DFF6FF98DFF6FF98DFF6FF98DFF6FFA1E7 + FAFF007FBE8E007EBD00FFFFFF00FFFFFF00FFFFFF00007DBB919BE1F7FF94DB + F4FF94DBF4FF94DBF4FF94DBF4FF94DBF4FF94DBF4FF94DBF4FF9EE4F8FF7BC0 + DEFF007DBB91007DBB33FFFFFF00FFFFFF00FFFFFF00007BB89497DEF6FF90D8 + F2FF90D8F2FF90D8F2FF90D8F2FF90D8F2FF90D8F2FF97DEF6FF78BDDCFF78BD + DCFFFEFEFDFF007BB894FFFFFF00FFFFFF00FFFFFF000079B59792DAF4FF8BD4 + F0FF8BD4F0FF8BD4F0FF8BD4F0FF8BD4F0FF8BD4F0FF92DAF4FF69ADCFFF92DA + F4FFF8F8F3FF0079B597FFFFFF00FFFFFF00FFFFFF000076B19A8ED6F2FF87D0 + EDFF87D0EDFF87D0EDFF87D0EDFF87D0EDFF87D0EDFF8ED6F2FF66AACCFF8ED6 + F2FFF0F0E6FF0076B19AFFFFFF00FFFFFF00FFFFFF000074AE9D8AD3F0FF82CD + EBFF82CDEBFF82CDEBFF82CDEBFF82CDEBFF82CDEBFF8AD3F0FF62A6C8FF8AD3 + F0FFE9E9DBFF0074AE9DFFFFFF00FFFFFF00FFFFFF000072ABA087D0EFFF7FCA + E9FF7FCAE9FF7FCAE9FF7FCAE9FF7FCAE9FF7FCAE9FF87D0EFFF5FA3C5FF87D0 + EFFFFEC941FF0072ABA0FFFFFF00FFFFFF00FFFFFF00006CA3A884CEEEFF7CC7 + E8FF7CC7E8FF7CC7E8FF7CC7E8FF7CC7E8FF7CC7E8FF84CEEEFF579BBDFF84CE + EEFFF4B62EFF006CA3A8FFFFFF00FFFFFF00FFFFFF00006395B486CFF0FF81CB + EDFF81CBEDFF81CBEDFF81CBEDFF81CBEDFF81CBEDFF86CFF0FF4B8FB1FF86CF + F0FF006395B40064973FFFFFFF00FFFFFF00FFFFFF00005D8C8F005C8BBF005C + 8BBF005C8BBF005C8BBF005C8BBF005C8BBF005C8BBF005C8BBF005C8BBF005C + 8BBF005D8C8F00639500FFFFFF00FFFFFF00FFFFFF000088CC610088CC810088 + CC810088CC810088CC810088CC810088CC810088CC810088CC810088CC810088 + CC810088CC610087CB00FFFFFF00FFFFFF00FFFFFF000087CA8388DCF4FF60C0 + E9FF5FBFEAFF80D3F4FF9CE3FDFFA2E6FFFFA2E6FFFFA2E6FFFFA2E6FFFFA6EA + FFFF0087CA830087CA00FFFFFF00FFFFFF00FFFFFF000085C885ACF1FFFFABEF + FEFF95E2F8FF6EC9EDFF48A8D9FF98DCFEFF98DCFEFF98DCFEFF98DCFEFFA1E5 + FFFF0085C8850085C800FFFFFF00FFFFFF00FFFFFF000084C587A9EEFDFFA4E9 + FCFFA4E9FCFFAAEEFDFF42A1D1FF97DBFDFF97DBFDFF97DBFDFF97DBFDFF9FE3 + FEFF0084C5870084C500FFFFFF00FFFFFF00FFFFFF000082C28AA6EBFCFFA1E6 + FBFFA1E6FBFFA6EBFCFF3C9DCFFF96DAFCFF96DAFCFF96DAFCFF96DAFCFF9EE2 + FDFF0082C28A0082C200FFFFFF00FFFFFF00FFFFFF00007FBF8DA3E8FBFF9DE3 + F9FF9DE3F9FFA3E8FBFF3594C5FF94D8FAFF94D8FAFF94D8FAFF94D8FAFF9BDF + FCFF007FBF8D007FBE00FFFFFF00FFFFFF00FFFFFF00007DBB909EE5F9FF98DF + F6FF98DFF6FF9EE5F9FF3290C0FF92D6F8FF92D6F8FF92D6F8FF92D6F8FF99DD + FAFF007DBB90007DBB33FFFFFF00FFFFFF00FFFFFF00007BB8949BE1F7FF94DB + F4FF94DBF4FF9BE1F7FF308DBCFF90D4F6FF90D4F6FF90D4F6FF90D4F6FF97DB + F9FFFEFEFDFF007BB894FFFFFF00FFFFFF00FFFFFF000078B49797DEF6FF90D8 + F2FF90D8F2FF97DEF6FF2D89B7FF8FD3F5FF8FD3F5FF8FD3F5FF8FD3F5FF95D9 + F8FFF5F5EEFF0078B497FFFFFF00FFFFFF00FFFFFF000076B09B92DAF4FF8BD4 + F0FF8BD4F0FF92DAF4FF2B85B3FF8DD1F3FF8DD1F3FF8DD1F3FF8DD1F3FF93D7 + F6FFEBEBDDFF0076B09BFFFFFF00FFFFFF00FFFFFF000073AC9E8ED6F2FF87D0 + EDFF87D0EDFF8ED6F2FF2882AFFF8BCFF1FF8BCFF1FF8BCFF1FF8BCFF1FF91D5 + F5FFFEC941FF0073AC9EFFFFFF00FFFFFF00FFFFFF00006FA7A48AD3F0FF82CD + EBFF82CDEBFF8AD3F0FF267EABFF8ACEF0FF8ACEF0FF8ACEF0FF8ACEF0FF8FD3 + F4FFF4B62EFF006FA7A4FFFFFF00FFFFFF00FFFFFF00006699B287D1EFFF7FCA + E9FF7FCAE9FF87D0EFFF267DA9FF8DD1F3FF8DD1F3FF8DD1F3FF8DD1F3FF90D4 + F5FF006699B200679B3EFFFFFF00FFFFFF00FFFFFF00005E8D8E3591BDF169B8 + DDFA81CBECFF84CEEEFF005C8BEF005D8CBE005D8CBE005D8CBE005D8CBE005D + 8CBE005E8D8E00669900FFFFFF00FFFFFF00FFFFFF00005D8C00006599500064 + 97991C7AA9C052A5CDE0005B89C1005B8900005B8900005B8900005B8900005B + 8900005D8C0000669900FFFFFF00FFFFFF00FFFFFF00005D8C00006497000062 + 9300005E8E30005C8C7C0059879200598700005B8900005B8900005B8900005B + 8900005D8C0000669900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF009F9D9B009D9A98009E9C9A009E9C9AFFA5A3 + A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FFA5A3A1FF9E9C + 9AFF9E9C9A009D9A98009F9D9B009F9D9B009B989600999795FFE4E3E2FFC6C4 + C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFC6C4C2FFE4E3 + E2FF999795FF9B9896009F9D9B009D9B9900969390FFE5E4E3FFC7C4C2FFC7C4 + C2FFC7C5C3FFC7C5C3FFC7C5C3FFC7C5C3FFC7C5C3FFC7C5C3FFC7C4C2FFC7C4 + C2FFE5E4E3FF969390FF9D9B99009A9896AAEFEEEFFFEBEAEAFFEAE9EAFFEAE9 + EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9EAFFEAE9 + EAFFEBEAEAFFEFEEEFFF9A9896AA969492FFE3E1E0FF9D9997FF9D9997FF9C99 + 97FF9C9997FF9C9997FF9C9997FF9C9997FF9C9997FF9C9997FF9C9997FF9D99 + 97FF9D9997FFE3E1E0FF969492FF93918FFFDCDBD9FFA6A3A0FFE6E4E4FFE5E3 + E4FFE5E4E4FFE6E4E4FFE6E4E4FFE6E4E4FFE6E4E4FFE5E4E4FFE5E3E4FFE6E4 + E4FFA6A3A0FFDCDBD9FF93918FFF908E8CFFD7D5D4FFAEACAAFFE1DFE0FFB0AD + ABFFB1AEACFFB2AEACFFB2AEACFFB2AEACFFB2AEACFFB1AEACFFB0ADABFFE1DF + E0FFAEACAAFFD7D5D4FF908E8CFF8D8A88FFD4D2D1FFB7B4B2FFD2D0D0FFC3C1 + BFFFC4C2C0FFC4C2C0FFC4C2C0FFC4C2C0FFC4C2C0FFC4C2C0FFC3C1BFFFD2D0 + D0FFB7B4B2FFD4D2D1FF8D8A88FF8A8785FFD2D0CFFFC1BFBDFFAEACAAFFAFAD + ABFFAFADABFFAFADABFFAFADABFFAFADABFFAFADABFFAFADABFFAFADABFFAEAC + AAFFC1BFBDFFD2D0CFFF8A8785FF888583FFD6D4D2FFCECCCAFFCECCCAFFCECC + CAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECCCAFFCECC + CAFFCECCCAFFD6D4D2FF888583FF7D7A78C084817FFF83807EFF83807EFF8380 + 7EFF83807EFF83807EFF83807EFF83807EFF83807EFF83807EFF83807EFF8380 + 7EFF83807EFF84817FFF7D7A78C0000000230000003300000033000000330000 + 0033000000330000003300000033000000330000003300000033000000330000 + 0033000000330000003300000023FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00 + } + end +end diff --git a/components/fpvectorial/examples/wmf_mainform.pas b/components/fpvectorial/examples/wmf_mainform.pas new file mode 100644 index 0000000000..67643a471f --- /dev/null +++ b/components/fpvectorial/examples/wmf_mainform.pas @@ -0,0 +1,200 @@ +unit wmf_mainform; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ShellCtrls, + ExtCtrls, ComCtrls, fpvectorial; + +type + + { TForm1 } + + TForm1 = class(TForm) + Image1: TImage; + ImageList: TImageList; + LeftPanel: TPanel; + ScrollBox1: TScrollBox; + ShellListView: TShellListView; + ShellTreeView: TShellTreeView; + Splitter1: TSplitter; + Splitter2: TSplitter; + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure ShellListViewSelectItem(Sender: TObject; Item: TListItem; + Selected: Boolean); + procedure ShellTreeViewGetImageIndex(Sender: TObject; Node: TTreeNode); + procedure ShellTreeViewGetSelectedIndex(Sender: TObject; Node: TTreeNode); + private + { private declarations } + FVec: TvVectorialDocument; + procedure LoadImage(const AFileName: String); + procedure ReadFromIni; + procedure WriteToIni; + public + { public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.lfm} + +uses + IniFiles, fpvUtils; + +const + PROGRAM_NAME = 'wmfViewer'; + + +{ TForm1 } + +procedure TForm1.FormCreate(Sender: TObject); +begin + // Set correct dpi for scaling of mapmode MM_TEXT. + ScreenDPIX := ScreenInfo.PixelsPerInchX; + ScreenDPIY := ScreenInfo.PixelsPerInchY; + + Caption := PROGRAM_NAME; + ShellListview.Mask := '*.svg;*.wmf'; + + ReadFromIni; + + if ParamCount > 0 then begin + ShellTreeview.Path := ExtractFilepath(ParamStr(1)); + ShellTreeview.MakeSelectionVisible; + LoadImage(ParamStr(1)); + end; +end; + +procedure TForm1.FormDestroy(Sender: TObject); +begin + WriteToIni; + FreeAndNil(FVec); +end; + +procedure TForm1.LoadImage(const AFileName: String); +const + INCH = 25.4; +var + bmp: TBitmap; + page: TvPage; + multiplierX, multiplierY: Double; +begin + // For conversion of the mm returned by the wmf reader to screen pixels + multiplierX := ScreenInfo.PixelsPerInchX / INCH; + multiplierY := ScreenInfo.PixelsPerInchY / INCH; + + // Load the image file into a TvVectorialDocument + FreeAndNil(FVec); + try + FVec := TvVectorialDocument.Create; + FVec.ReadFromFile(AFilename); + except + on E:Exception do + MessageDlg(E.Message, mtError, [mbOK], 0); + end; + + if FVec = nil then + exit; + + // Create a temporary bitmap onto which the image file will be drawn + bmp := TBitmap.Create; + try + page := FVec.GetPage(0); + bmp.SetSize( + round(FVec.Width * multiplierX), // Convert mm to pixels + round(FVec.Height * multiplierY) + ); + bmp.Canvas.Brush.Color := clWindow; + bmp.Canvas.FillRect(0, 0, bmp.Width, bmp.Height); + page.Render(bmp.Canvas, 0, 0, multiplierX, multiplierY); + // Assign the bitmap to the image's picture. + Image1.Picture.Assign(bmp); + Image1.Width := bmp.Width; + Image1.Height := bmp.Height; + // Misc + Caption := Format('%s - "%s"', [PROGRAM_NAME, AFileName]); + finally + bmp.Free; + end; +end; + +procedure TForm1.ShellListViewSelectItem(Sender: TObject; Item: TListItem; + Selected: Boolean); +var + fn: String; +begin + if Selected then + begin + fn := ShellListview.GetPathFromItem(ShellListview.Selected); + ShellTreeview.MakeSelectionVisible; + LoadImage(fn); + end; +end; + +procedure TForm1.ShellTreeViewGetImageIndex(Sender: TObject; Node: TTreeNode); +begin + if Node.Level = 0 then + Node.ImageIndex := 2 else + Node.ImageIndex := 0; +end; + +procedure TForm1.ShellTreeViewGetSelectedIndex(Sender: TObject; Node: TTreeNode); +begin + Node.SelectedIndex := 1; +end; + +procedure TForm1.ReadFromIni; +var + ini: TCustomIniFile; + L, T, W, H: Integer; + R: TRect; +begin + ini := TMemIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')); + try + L := ini.ReadInteger('MainForm', 'Left', Left); + T := ini.ReadInteger('MainForm', 'Top', Top); + W := ini.ReadInteger('MainForm', 'Width', Width); + H := ini.ReadInteger('MainForm', 'Height', Height); + R := Screen.DesktopRect; + if L+W > R.Right then L := R.Right - W; + if L < R.Left then L := R.Left; + if T+H > R.Bottom then T := R.Bottom - H; + if T < R.Top then T := R.Top; + SetBounds(L, T, W, H); + ShellTreeView.Height := ini.ReadInteger('MainForm', 'ShellTreeViewHeight', ShellTreeView.Height); + LeftPanel.Width := ini.ReadInteger('MainForm', 'ShellControlsWidth', LeftPanel.Width); + ShellTreeview.Path := ini.ReadString('Settings', 'InitialDir', ''); + finally + ini.Free; + end; +end; + +procedure TForm1.WriteToIni; +var + ini: TCustomIniFile; +begin + ini := TMemIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')); + try + if WindowState = wsNormal then begin + ini.WriteInteger('MainForm', 'Left', Left); + ini.WriteInteger('MainForm', 'Top', Top); + ini.WriteInteger('MainForm', 'Width', Width); + ini.WriteInteger('MainForm', 'Height', Height); + ini.WriteInteger('MainForm', 'ShellTreeViewHeight', ShellTreeView.Height); + ini.WriteInteger('MainForm', 'ShellControlsWidth', LeftPanel.Width); + end; + ini.WriteString('Settings', 'InitialDir', ShellTreeview.Path); + finally + ini.Free; + end; +end; + + +end. + diff --git a/components/fpvectorial/examples/wmfviewer.lpi b/components/fpvectorial/examples/wmfviewer.lpi new file mode 100644 index 0000000000..3969e45d2c --- /dev/null +++ b/components/fpvectorial/examples/wmfviewer.lpi @@ -0,0 +1,89 @@ + + + + + + + + + + <ResourceType Value="res"/> + <UseXPManifest Value="True"/> + <Icon Value="0"/> + </General> + <VersionInfo> + <StringTable ProductVersion=""/> + </VersionInfo> + <BuildModes Count="1"> + <Item1 Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + </PublishOptions> + <RunParams> + <local> + <FormatVersion Value="1"/> + </local> + </RunParams> + <RequiredPackages Count="2"> + <Item1> + <PackageName Value="fpvectorialpkg"/> + </Item1> + <Item2> + <PackageName Value="LCL"/> + </Item2> + </RequiredPackages> + <Units Count="2"> + <Unit0> + <Filename Value="wmfviewer.lpr"/> + <IsPartOfProject Value="True"/> + </Unit0> + <Unit1> + <Filename Value="wmf_mainform.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="Form1"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + </Unit1> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <PathDelim Value="\"/> + <Target> + <Filename Value="wmfviewer"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <CodeGeneration> + <Checks> + <IOChecks Value="True"/> + <RangeChecks Value="True"/> + <OverflowChecks Value="True"/> + <StackChecks Value="True"/> + </Checks> + </CodeGeneration> + <Linking> + <Options> + <Win32> + <GraphicApplication Value="True"/> + </Win32> + </Options> + </Linking> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/components/fpvectorial/examples/wmfviewer.lpr b/components/fpvectorial/examples/wmfviewer.lpr new file mode 100644 index 0000000000..c7c136b7b7 --- /dev/null +++ b/components/fpvectorial/examples/wmfviewer.lpr @@ -0,0 +1,21 @@ +program wmfviewer; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms, wmf_mainform, fpvectorialpkg + { you can add units after this }; + +{$R *.res} + +begin + RequireDerivedFormResource := True; + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. +