mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-07 16:38:02 +02:00
fpvectorial: Add demo program for wmf
git-svn-id: trunk@52797 -
This commit is contained in:
parent
edb78315fa
commit
814eba3c6a
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -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
|
||||
|
197
components/fpvectorial/examples/wmf_mainform.lfm
Normal file
197
components/fpvectorial/examples/wmf_mainform.lfm
Normal file
@ -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
|
200
components/fpvectorial/examples/wmf_mainform.pas
Normal file
200
components/fpvectorial/examples/wmf_mainform.pas
Normal file
@ -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.
|
||||
|
89
components/fpvectorial/examples/wmfviewer.lpi
Normal file
89
components/fpvectorial/examples/wmfviewer.lpi
Normal file
@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="9"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="wmfviewer"/>
|
||||
<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>
|
21
components/fpvectorial/examples/wmfviewer.lpr
Normal file
21
components/fpvectorial/examples/wmfviewer.lpr
Normal file
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user