├── _config.yml
├── Images
├── Copy.png
├── Cut.png
├── Exit.png
├── Open.png
├── SCAD.png
├── Save.png
├── Undo.png
├── new.png
├── redo.png
├── About.png
├── Export.png
├── PathExe.png
├── Replace.png
├── Save As.png
├── Search.png
├── Timer.png
├── paste.png
├── Bookmark.png
├── Highlight.png
├── icon-alpha.png
├── senCilleSCAD.ico
├── senCilleSCAD.icns
├── senCilleSCAD 44x44.png
└── senCilleSCAD 150x150.png
├── senCilleSCAD_Icns.icns
├── senCilleSCAD_Icns1.icns
├── senCilleSCAD_Icon2.ico
├── StyleBookCustomized.style
├── WebImages
├── Running Example.png
└── senCilleSCAD running.PNG
├── .gitignore
├── senCilleSCAD.dpr
├── Installer
└── senCilleSCAD Setup.iss
├── PRODUCT_CONSTS.INC
├── README.md
├── AboutsenCille.pas
├── senCille.XPlatformTools.pas
├── senCilleSCAD.deployproj
├── AboutsenCille.fmx
├── MainForm.pas
└── senCilleSCAD.dproj
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-architect
--------------------------------------------------------------------------------
/Images/Copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Copy.png
--------------------------------------------------------------------------------
/Images/Cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Cut.png
--------------------------------------------------------------------------------
/Images/Exit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Exit.png
--------------------------------------------------------------------------------
/Images/Open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Open.png
--------------------------------------------------------------------------------
/Images/SCAD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/SCAD.png
--------------------------------------------------------------------------------
/Images/Save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Save.png
--------------------------------------------------------------------------------
/Images/Undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Undo.png
--------------------------------------------------------------------------------
/Images/new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/new.png
--------------------------------------------------------------------------------
/Images/redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/redo.png
--------------------------------------------------------------------------------
/Images/About.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/About.png
--------------------------------------------------------------------------------
/Images/Export.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Export.png
--------------------------------------------------------------------------------
/Images/PathExe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/PathExe.png
--------------------------------------------------------------------------------
/Images/Replace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Replace.png
--------------------------------------------------------------------------------
/Images/Save As.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Save As.png
--------------------------------------------------------------------------------
/Images/Search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Search.png
--------------------------------------------------------------------------------
/Images/Timer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Timer.png
--------------------------------------------------------------------------------
/Images/paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/paste.png
--------------------------------------------------------------------------------
/Images/Bookmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Bookmark.png
--------------------------------------------------------------------------------
/Images/Highlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/Highlight.png
--------------------------------------------------------------------------------
/Images/icon-alpha.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/icon-alpha.png
--------------------------------------------------------------------------------
/Images/senCilleSCAD.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/senCilleSCAD.ico
--------------------------------------------------------------------------------
/senCilleSCAD_Icns.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/senCilleSCAD_Icns.icns
--------------------------------------------------------------------------------
/senCilleSCAD_Icns1.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/senCilleSCAD_Icns1.icns
--------------------------------------------------------------------------------
/senCilleSCAD_Icon2.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/senCilleSCAD_Icon2.ico
--------------------------------------------------------------------------------
/Images/senCilleSCAD.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/senCilleSCAD.icns
--------------------------------------------------------------------------------
/StyleBookCustomized.style:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/StyleBookCustomized.style
--------------------------------------------------------------------------------
/Images/senCilleSCAD 44x44.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/senCilleSCAD 44x44.png
--------------------------------------------------------------------------------
/WebImages/Running Example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/WebImages/Running Example.png
--------------------------------------------------------------------------------
/Images/senCilleSCAD 150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/Images/senCilleSCAD 150x150.png
--------------------------------------------------------------------------------
/WebImages/senCilleSCAD running.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/senCille/senCilleSCAD/HEAD/WebImages/senCilleSCAD running.PNG
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /OSX32/Debug
2 | /Win32/Debug
3 | /Win64/Debug
4 | __history
5 | /bin/Install senCilleSCAD.exe
6 | *.stat
7 | /bin/senCilleSCAD.exe
8 | /bin/senCilleSCAD.rsm
9 | /info.plist.TemplateOSX.xml
10 | /*.tmp
11 | /*.local
12 | /*.identcache
13 | /*.res
14 | /Entitlement.TemplateOSX32.xml
15 |
--------------------------------------------------------------------------------
/senCilleSCAD.dpr:
--------------------------------------------------------------------------------
1 | program senCilleSCAD;
2 |
3 | uses
4 | System.StartUpCopy,
5 | FMX.Forms,
6 | MainForm in 'MainForm.pas' {FView},
7 | senCille.XPlatformTools in 'senCille.XPlatformTools.pas',
8 | AboutsenCille in 'AboutsenCille.pas';
9 |
10 | {$R *.res}
11 |
12 | begin
13 | Application.Initialize;
14 | Application.CreateForm(TFView, FView);
15 | Application.Run;
16 | end.
17 |
--------------------------------------------------------------------------------
/Installer/senCilleSCAD Setup.iss:
--------------------------------------------------------------------------------
1 |
2 | [Setup]
3 | OutputBaseFilename=Install senCilleSCAD
4 | AppName=senCilleSCAD
5 | AppVersion=1.0
6 | DefaultDirName={pf}\senCilleSCAD
7 | DefaultGroupName=senCilleSCAD
8 | UninstallDisplayIcon={app}\uninstall senCilleSCAD.exe
9 | Compression=lzma2
10 | SolidCompression=yes
11 | OutputDir=..\bin
12 |
13 | [Files]
14 | Source: "..\bin\senCilleSCAD.exe"; DestDir: "{app}"
15 |
16 | [Icons]
17 | Name: "{group}\senCilleSCAD"; Filename: "{app}\senCilleSCAD.exe"
18 |
--------------------------------------------------------------------------------
/PRODUCT_CONSTS.INC:
--------------------------------------------------------------------------------
1 | {******************************************}
2 | { }
3 | { senCille v 1.0 }
4 | { Include file }
5 | { }
6 | { Copyright (c) 2015 }
7 | { by Juan Carlos Cilleruelo Gonzalo }
8 | { senCille.es }
9 | { }
10 | {******************************************}
11 |
12 | const SALT = '{E1D0658A-DD4E-4B41-8E22-A71EFFF446E2}';
13 | MAX_ACCESSES = 500; {Half hundred by day}
14 | TEST_UNREG_DAYS = 10;
15 | RootHelpPath = 'https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language';
16 | RootWebPath = 'http://sencille.es/';
17 |
18 | MAJOR_VERSION = '01';
19 | MINOR_VERSION = '00';
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # senCilleSCAD
2 | IDE (Integrated Development Environment) for OpenSCAD.
3 |
4 | The current version has the basic functionalities.
5 | You can edit the source code with many common functions like copy and paste, undo/redo, save as, etc.
6 |
7 | The most input in this first version is that you can edit the source code and without doing anything the drawing is taking place in the OpenSCAD window.
8 |
9 | Another interesting input is that you can export the file to some formats, like PNG, STL or DXF.
10 |
11 | The next desirable things to add the application are the options of export the files previous modifications of something like the camera position, image size, or colour scheme.
12 |
13 | This part is not accomplished yet because in the current version of OpenSCAD these parameters are not working for Windows version.
14 |
15 | Another thing we want for the application in next version is a compilation for Mac OS X and another for Linux.
16 |
--------------------------------------------------------------------------------
/AboutsenCille.pas:
--------------------------------------------------------------------------------
1 | unit AboutsenCille;
2 |
3 | interface
4 |
5 | uses System.Classes, System.UITypes, System.Math.Vectors,
6 | FMX.Viewport3D, FMX.StdCtrls, FMX.MaterialSources, FMX.Forms, FMX.Dialogs, FMX.Types,
7 | FMX.Objects, FMX.Effects, FMX.Forms3D, FMX.Controls3D, FMX.Controls, FMX.Ani, FMX.Layouts,
8 | FMX.Objects3D, FMX.Types3D, FMX.Materials, FMX.Controls.Presentation;
9 |
10 | type
11 | TAboutInvoicingView = class(TForm)
12 | Rectangle1: TRectangle;
13 | ShadowEffect1: TShadowEffect;
14 | BtnClose: TButton;
15 | Text1: TText;
16 | Viewport3D1: TViewport3D;
17 | Light1: TLight;
18 | GlowEffect1: TGlowEffect;
19 | GouraudMaterialSource1: TLightMaterialSource;
20 | GouraudMaterialSource2: TLightMaterialSource;
21 | Cube1: TCube;
22 | FloatAnimation1: TFloatAnimation;
23 | ColorAnimation1: TColorAnimation;
24 | Text3D1: TText3D;
25 | Panel1: TPanel;
26 | LabelIcons8: TLabel;
27 | Label6: TLabel;
28 | LabelWebSenCille: TLabel;
29 | Label1: TLabel;
30 | Label3: TLabel;
31 | Label2: TLabel;
32 | Label4: TLabel;
33 | procedure BtnCloseClick(Sender: TObject);
34 | procedure LabelIcons8Click(Sender: TObject);
35 | procedure LabelWebSenCilleClick(Sender: TObject);
36 | procedure FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
37 | private
38 | function OpenURL(sCommand: string):Integer;
39 | public
40 | end;
41 |
42 | implementation
43 |
44 | {$R *.fmx}
45 |
46 | uses
47 | {$IFDEF ANDROID}
48 | FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText,
49 | Androidapi.JNI.Net, Androidapi.JNI.JavaTypes,
50 | {$ELSE}
51 | {$IFDEF IOS}
52 | iOSapi.Foundation, FMX.Helpers.iOS,
53 | {$ENDIF IOS}
54 | {$ENDIF ANDROID}
55 |
56 | {$IFDEF MSWINDOWS}
57 | Winapi.ShellAPI, Winapi.Windows,
58 | {$ELSEIF DEFINED(MACOS)}
59 | Posix.Stdlib,
60 | {$ENDIF}
61 | {IdURI,} System.SysUtils;
62 |
63 | procedure TAboutInvoicingView.BtnCloseClick(Sender: TObject);
64 | begin
65 | Close;
66 | end;
67 |
68 | procedure TAboutInvoicingView.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
69 | begin
70 | case Key of
71 | vkF9 :begin BtnClose.SetFocus; BtnClose.OnClick(Self); Key := 0; end;
72 | end;
73 | end;
74 |
75 | procedure TAboutInvoicingView.LabelIcons8Click(Sender: TObject);
76 | begin
77 | OpenURL('https://icons8.com')
78 | end;
79 |
80 | procedure TAboutInvoicingView.LabelWebSenCilleClick(Sender: TObject);
81 | begin
82 | OpenURL('http://senCille.es');
83 | end;
84 |
85 | function TAboutInvoicingView.OpenURL(sCommand: string):Integer;
86 | begin
87 | {$IF DEFINED(MACOS)}
88 | _system(PAnsiChar('open ' + '"' + AnsiString(sCommand) + '"'));
89 | {$ELSEIF DEFINED(MSWINDOWS)}
90 | Result := ShellExecute(0, 'OPEN', PChar(sCommand), '', '', SW_SHOWNORMAL);
91 | {$ELSEIF DEFINED(IOS)}
92 | Result := prvOpenURL(sCommand);
93 | {$ELSEIF DEFINED(ANDROID)}
94 | Result := prvOpenURL(sCommand);
95 | {$ENDIF}
96 | end;
97 |
98 | end.
99 |
--------------------------------------------------------------------------------
/senCille.XPlatformTools.pas:
--------------------------------------------------------------------------------
1 | unit senCille.XPlatformTools;
2 |
3 | interface
4 |
5 | {$INCLUDE PRODUCT_CONSTS.INC}
6 |
7 | type
8 | TXPlatform = class
9 | private
10 | {$IF DEFINED(IOS)}
11 | class function prvOpenURL(const URL: string; const DisplayError: Boolean = False):Integer;
12 | {$ELSEIF DEFINED(ANDROID)}
13 | class function prvOpenURL(const URL: string; const DisplayError: Boolean = False):Integer;
14 | {$ENDIF}
15 | public
16 | class function OpenURL(sCommand: string):Integer;
17 | class procedure CallWebHelp(aHelpPath :string);
18 | class procedure CallWebPage(aHelpPath :string);
19 | end;
20 |
21 | implementation
22 |
23 | uses
24 | {$IFDEF ANDROID}
25 | FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText,
26 | Androidapi.JNI.Net, Androidapi.JNI.JavaTypes,
27 | {$ELSE}
28 | {$IFDEF IOS}
29 | iOSapi.Foundation, FMX.Helpers.iOS,
30 | {$ENDIF IOS}
31 | {$ENDIF ANDROID}
32 |
33 | {$IFDEF MSWINDOWS}
34 | Winapi.ShellAPI, Winapi.Windows,
35 | {$ELSEIF DEFINED(MACOS)}
36 | Posix.Stdlib,
37 | {$ENDIF}
38 | {IdURI,} System.SysUtils, Classes, FMX.Dialogs;
39 |
40 | class function TXPlatform.OpenURL(sCommand: string):Integer;
41 | begin
42 | {$IF DEFINED(MACOS)}
43 | _system(PAnsiChar('open ' + '"' + AnsiString(sCommand) + '"'));
44 | {$ELSEIF DEFINED(MSWINDOWS)}
45 | Result := ShellExecute(0, 'OPEN', PChar(sCommand), '', '', SW_SHOWNORMAL);
46 | {$ELSEIF DEFINED(IOS)}
47 | Result := prvOpenURL(sCommand);
48 | {$ELSEIF DEFINED(ANDROID)}
49 | Result := prvOpenURL(sCommand);
50 | {$ENDIF}
51 | end;
52 |
53 | {$IFDEF IOS}
54 | class function TXPlatform.prvOpenURL(const URL: string; const DisplayError: Boolean = False):Integer;
55 | var NSU :NSUrl;
56 | begin
57 | // iOS doesn't like spaces, so URL encode is important.
58 | NSU := StrToNSUrl(TIdURI.URLEncode(URL));
59 | if SharedApplication.canOpenURL(NSU) then begin
60 | exit(SharedApplication.openUrl(NSU));
61 | end
62 | else begin
63 | if DisplayError then begin
64 | ShowMessage('Error: Opening "' + URL + '" not supported.');
65 | end;
66 | Exit(False);
67 | end;
68 | end;
69 | {$ENDIF}
70 |
71 | {$IFDEF ANDROID}
72 | class function TXPlatform.prvOpenURL(const URL: string; const DisplayError: Boolean = False):Integer;
73 | var Intent :JIntent;
74 | begin
75 | // There may be an issue with the geo: prefix and URLEncode.
76 | // will need to research
77 | Intent := TJIntent.JavaClass.Init(TJIntent.JavaClass.ACTION_VIEW,
78 | TJnet_Uri.JavaClass.Parse(StringToJString(TIdURI.URLEncode(URL))));
79 | try
80 | SharedActivity.StartActivity(Intent);
81 | Exit(True);
82 | except
83 | on e: Exception do begin
84 | if DisplayError then ShowMessage('Error: ' + e.Message);
85 | Exit(False);
86 | end;
87 | end;
88 | end;
89 | {$ENDIF}
90 |
91 | class procedure TXPlatform.CallWebHelp(aHelpPath :string);
92 | begin
93 | TXPlatform.OpenURL(RootHelpPath + LowerCase(aHelpPath));
94 | end;
95 |
96 | class procedure TXPlatform.CallWebPage(aHelpPath :string);
97 | begin
98 | TXPlatform.OpenURL(RootWebPath + LowerCase(aHelpPath));
99 | end;
100 |
101 | end.
102 |
--------------------------------------------------------------------------------
/senCilleSCAD.deployproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 12
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | senCilleSCAD\
18 | PRODUCT_CONSTS.INC
19 | ProjectFile
20 | 0
21 |
22 |
23 | True
24 |
25 |
26 | senCilleSCAD\Assets\
27 | Logo150x150.png
28 | UWP_DelphiLogo150
29 | 1
30 |
31 |
32 | True
33 |
34 |
35 | senCilleSCAD\Assets\
36 | Logo44x44.png
37 | UWP_DelphiLogo44
38 | 1
39 |
40 |
41 | True
42 |
43 |
44 | senCilleSCAD\
45 | senCilleSCAD.rsm
46 | DebugSymbols
47 | 0
48 |
49 |
50 | True
51 |
52 |
53 | senCilleSCAD\
54 | senCilleSCAD.exe
55 | ProjectOutput
56 | 0
57 |
58 |
59 | True
60 | True
61 |
62 |
63 |
64 |
65 | senCilleSCAD.app\Contents\
66 | Info.plist
67 | ProjectOSXInfoPList
68 | 1
69 |
70 |
71 | True
72 |
73 |
74 | senCilleSCAD.app\Contents\MacOS\
75 | senCilleSCAD.rsm
76 | DebugSymbols
77 | 1
78 |
79 |
80 | True
81 |
82 |
83 | senCilleSCAD.app\Contents\Resources\
84 | senCilleSCAD.icns
85 | ProjectOSXResource
86 | 1
87 |
88 |
89 | True
90 |
91 |
92 | senCilleSCAD.app\Contents\MacOS\
93 | senCilleSCAD
94 | ProjectOutput
95 | 1
96 |
97 |
98 | True
99 | True
100 |
101 |
102 | senCilleSCAD.app\Contents\MacOS\
103 | libcgsqlite3.dylib
104 | DependencyModule
105 | 1
106 |
107 |
108 | True
109 |
110 |
111 | senCilleSCAD.app\Contents\MacOS\
112 | libcgunwind.1.0.dylib
113 | DependencyModule
114 | 1
115 |
116 |
117 | True
118 |
119 |
120 | senCilleSCAD.app\Contents\Resources\StartUp\
121 | PRODUCT_CONSTS.INC
122 | ProjectFile
123 | 0
124 |
125 |
126 | True
127 |
128 |
129 | senCilleSCAD.app\..\
130 | senCilleSCAD.entitlements
131 | ProjectOSXEntitlements
132 | 1
133 |
134 |
135 | True
136 |
137 |
138 |
139 |
140 |
141 | senCilleSCAD.app\
142 | libcgunwind.1.0.dylib
143 | DependencyModule
144 | 1
145 |
146 |
147 | True
148 |
149 |
150 | senCilleSCAD.app\
151 | libPCRE.dylib
152 | DependencyModule
153 | 1
154 |
155 |
156 | True
157 |
158 |
159 |
160 |
--------------------------------------------------------------------------------
/AboutsenCille.fmx:
--------------------------------------------------------------------------------
1 | object AboutInvoicingView: TAboutInvoicingView
2 | Left = 497
3 | Top = 148
4 | BorderIcons = [biSystemMenu]
5 | BorderStyle = Single
6 | Caption = 'About senCille.es'
7 | ClientHeight = 429
8 | ClientWidth = 402
9 | Position = DesktopCenter
10 | FormFactor.Width = 2020
11 | FormFactor.Height = 1273
12 | FormFactor.Devices = [Desktop]
13 | FormFamily = 'TForm'
14 | OnKeyDown = FormKeyDown
15 | Left = 497
16 | Top = 148
17 | DesignerMasterStyle = 1
18 | object Rectangle1: TRectangle
19 | Align = Client
20 | Fill.Color = xDC065B79
21 | HitTest = False
22 | Margins.Left = 9.000000000000000000
23 | Margins.Top = 9.000000000000000000
24 | Margins.Right = 15.000000000000000000
25 | Margins.Bottom = 15.000000000000000000
26 | Size.Width = 378.000000000000000000
27 | Size.Height = 405.000000000000000000
28 | Size.PlatformDefault = False
29 | Stroke.Color = claWhite
30 | Stroke.Thickness = 3.000000000000000000
31 | XRadius = 9.000000000000000000
32 | YRadius = 9.000000000000000000
33 | object ShadowEffect1: TShadowEffect
34 | Distance = 3.000000000000000000
35 | Direction = 45.000000000000000000
36 | Softness = 0.300000011920929000
37 | Opacity = 0.600000023841857900
38 | ShadowColor = claBlack
39 | end
40 | object BtnClose: TButton
41 | Position.X = 267.000000000000000000
42 | Position.Y = 352.000000000000000000
43 | Size.Width = 80.000000000000000000
44 | Size.Height = 22.000000000000000000
45 | Size.PlatformDefault = False
46 | TabOrder = 0
47 | Text = 'Cerrar'
48 | OnClick = BtnCloseClick
49 | end
50 | object Text1: TText
51 | HitTest = False
52 | Position.X = 16.000000000000000000
53 | Position.Y = 16.000000000000000000
54 | Size.Width = 337.000000000000000000
55 | Size.Height = 81.000000000000000000
56 | Size.PlatformDefault = False
57 | Text = 'Manufacturing Software'
58 | TextSettings.Font.Size = 33.000000000000000000
59 | TextSettings.Font.StyleExt = {00070000000000000004000000}
60 | TextSettings.FontColor = xFFDDDDDD
61 | object Panel1: TPanel
62 | Position.X = 7.000000000000000000
63 | Position.Y = 221.000000000000000000
64 | Size.Width = 234.000000000000000000
65 | Size.Height = 145.000000000000000000
66 | Size.PlatformDefault = False
67 | TabOrder = 0
68 | object LabelIcons8: TLabel
69 | Cursor = crHandPoint
70 | StyledSettings = [Family, Size]
71 | HitTest = True
72 | Position.X = 10.000000000000000000
73 | Position.Y = 114.000000000000000000
74 | Size.Width = 207.000000000000000000
75 | Size.Height = 16.000000000000000000
76 | Size.PlatformDefault = False
77 | TextSettings.Font.StyleExt = {04040000000000000004000000}
78 | TextSettings.FontColor = claBlue
79 | TextSettings.HorzAlign = Center
80 | TextSettings.WordWrap = False
81 | Text = 'Icons Provided by Icons8'
82 | OnClick = LabelIcons8Click
83 | end
84 | object Label6: TLabel
85 | Position.X = 43.000000000000000000
86 | Position.Y = 7.000000000000000000
87 | Size.Width = 128.000000000000000000
88 | Size.Height = 16.000000000000000000
89 | Size.PlatformDefault = False
90 | TextSettings.WordWrap = False
91 | Text = 'Calle de las Tercias, 19'#13#10
92 | end
93 | object LabelWebSenCille: TLabel
94 | Cursor = crHandPoint
95 | StyledSettings = [Family, Size]
96 | HitTest = True
97 | Position.X = 66.000000000000000000
98 | Position.Y = 88.000000000000000000
99 | Size.Width = 95.000000000000000000
100 | Size.Height = 16.000000000000000000
101 | Size.PlatformDefault = False
102 | TextSettings.Font.StyleExt = {04040000000000000004000000}
103 | TextSettings.FontColor = claBlue
104 | TextSettings.WordWrap = False
105 | Text = 'www.sencille.es'
106 | OnClick = LabelWebSenCilleClick
107 | end
108 | object Label1: TLabel
109 | Position.X = 35.000000000000000000
110 | Position.Y = 20.000000000000000000
111 | Size.Width = 182.000000000000000000
112 | Size.Height = 23.000000000000000000
113 | Size.PlatformDefault = False
114 | TextSettings.WordWrap = False
115 | Text = '47300 PE'#209'AFIEL (Valladolid)'
116 | end
117 | object Label3: TLabel
118 | Position.X = 59.000000000000000000
119 | Position.Y = 43.000000000000000000
120 | Size.Width = 118.000000000000000000
121 | Size.Height = 16.000000000000000000
122 | Size.PlatformDefault = False
123 | TextSettings.WordWrap = False
124 | Text = 'Phone. 607 880 970'
125 | Visible = False
126 | end
127 | object Label2: TLabel
128 | Position.X = 52.000000000000000000
129 | Position.Y = 46.000000000000000000
130 | Size.Width = 108.000000000000000000
131 | Size.Height = 32.000000000000000000
132 | Size.PlatformDefault = False
133 | TextSettings.WordWrap = False
134 | Text = '+34 607 880 970'
135 | end
136 | object Label4: TLabel
137 | Position.X = 49.000000000000000000
138 | Position.Y = 72.000000000000000000
139 | Text = ' +34 983 880 970'
140 | end
141 | end
142 | end
143 | object Viewport3D1: TViewport3D
144 | Color = claNull
145 | HitTest = False
146 | Position.X = 16.000000000000000000
147 | Position.Y = 80.000000000000000000
148 | Size.Width = 337.000000000000000000
149 | Size.Height = 169.000000000000000000
150 | Size.PlatformDefault = False
151 | object Light1: TLight
152 | Color = claWhite
153 | LightType = Directional
154 | SpotCutOff = 180.000000000000000000
155 | Position.X = -4.972735404968262000
156 | Position.Y = -8.621065139770508000
157 | Position.Z = 0.000001339281197943
158 | RotationAngle.X = 24.660659790039060000
159 | RotationAngle.Z = 22.268035888671880000
160 | Width = 1.000000000000000000
161 | Height = 1.000000000000000000
162 | Depth = 1.000000000000000000
163 | Quanternion =
164 | '(-0.209528207778931,-0.0412370041012764,-0.188650131225586,0.958' +
165 | '544969558716)'
166 | end
167 | object GlowEffect1: TGlowEffect
168 | Softness = 0.400000005960464500
169 | GlowColor = claGold
170 | Opacity = 0.899999976158142100
171 | end
172 | object Cube1: TCube
173 | Position.X = -0.386544138193130500
174 | Position.Y = 1.010106325149536000
175 | Position.Z = 0.000001636869001231
176 | RotationAngle.X = 77.204421997070310000
177 | RotationAngle.Y = 0.709136962890625000
178 | RotationAngle.Z = 28.656188964843750000
179 | Width = 0.143776848912239100
180 | Height = 0.589947819709777800
181 | Depth = 0.030569851398468020
182 | MaterialSource = GouraudMaterialSource1
183 | Quanternion =
184 | '(0.601072192192078,-0.164632141590118,-0.0964489653706551,0.7760' +
185 | '83469390869)'
186 | object FloatAnimation1: TFloatAnimation
187 | AnimationType = InOut
188 | AutoReverse = True
189 | Enabled = True
190 | Duration = 4.000000000000000000
191 | Interpolation = Back
192 | Loop = True
193 | PropertyName = 'RotationAngle.Y'
194 | StartValue = 0.000000000000000000
195 | StopValue = 360.000000000000000000
196 | end
197 | object ColorAnimation1: TColorAnimation
198 | Duration = 0.200000002980232200
199 | PropertyName = 'Material.Diffuse'
200 | StartValue = xFFD49B0B
201 | StopValue = claRed
202 | Trigger = 'IsMouseOver=true'
203 | TriggerInverse = 'IsMouseOver=false'
204 | end
205 | object Text3D1: TText3D
206 | Position.X = 1.112263679504395000
207 | Position.Y = -0.502195060253143300
208 | Position.Z = 0.778045356273651100
209 | RotationAngle.X = 24.555427551269530000
210 | RotationAngle.Y = 341.495056152343800000
211 | RotationAngle.Z = 20.262855529785160000
212 | Width = 15.995641708374020000
213 | Height = 4.061948299407959000
214 | Depth = 0.997694492340087900
215 | HitTest = False
216 | Font.Size = 3.000000000000000000
217 | Font.StyleExt = {00070000000000000004000000}
218 | Text = 'senCille'
219 | Flatness = 1.000000000000000000
220 | Sides = [Front, Back, Shaft]
221 | MaterialBackSource = GouraudMaterialSource2
222 | MaterialShaftSource = GouraudMaterialSource2
223 | MaterialSource = GouraudMaterialSource2
224 | Quanternion =
225 | '(-0.730361938476563,-0.124543741345406,0.188292741775513,0.64467' +
226 | '5731658936)'
227 | end
228 | end
229 | end
230 | end
231 | object GouraudMaterialSource1: TLightMaterialSource
232 | Diffuse = claTomato
233 | Ambient = xFF202020
234 | Emissive = claNull
235 | Specular = xFF606060
236 | Shininess = 30
237 | Left = 314
238 | Top = 62
239 | end
240 | object GouraudMaterialSource2: TLightMaterialSource
241 | Diffuse = claCornflowerblue
242 | Ambient = xFF202020
243 | Emissive = claNull
244 | Specular = claCoral
245 | Shininess = 30
246 | Left = 82
247 | Top = 80
248 | end
249 | end
250 |
--------------------------------------------------------------------------------
/MainForm.pas:
--------------------------------------------------------------------------------
1 | unit MainForm;
2 |
3 | interface
4 |
5 | uses
6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
7 | FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.TMSBaseControl,
8 | FMX.TMSMemo, FMX.Controls.Presentation, FMX.Menus, FMX.Edit, FMX.Layouts, FMX.Objects,
9 | FMX.TMSMemoStyles, FMX.TMSMemoDialogs, FMX.ListBox;
10 |
11 | type
12 | TOpenSCADStyler = class(TTMSFMXMemoCustomStyler)
13 | constructor Create(AOwner: TComponent); override;
14 | end;
15 |
16 | TFView = class(TForm)
17 | Header: TToolBar;
18 | Footer: TToolBar;
19 | HeaderLabel: TLabel;
20 | MainMenu: TMainMenu;
21 | MenuItemFile: TMenuItem;
22 | MenuItemSearch: TMenuItem;
23 | MenuItemNew: TMenuItem;
24 | Separator01: TMenuItem;
25 | MenuItemOpen: TMenuItem;
26 | MenuItemSave: TMenuItem;
27 | MenuItemSaveAs: TMenuItem;
28 | Separator02: TMenuItem;
29 | MenuItemExit: TMenuItem;
30 | MenuItemFind: TMenuItem;
31 | MenuItemReplace: TMenuItem;
32 | MenuItemRun: TMenuItem;
33 | MenuItemRunRun: TMenuItem;
34 | ToolBar: TToolBar;
35 | BtnLoadFromFile: TSpeedButton;
36 | Image4: TImage;
37 | BtnSaveToFile: TSpeedButton;
38 | Image5: TImage;
39 | BtnCut: TSpeedButton;
40 | Image6: TImage;
41 | BtnCopy: TSpeedButton;
42 | Image7: TImage;
43 | BtnPaste: TSpeedButton;
44 | Image8: TImage;
45 | BtnUndo: TSpeedButton;
46 | Image9: TImage;
47 | BtnRedo: TSpeedButton;
48 | Image10: TImage;
49 | LayoutSeparator1: TLayout;
50 | BtnBookmark: TSpeedButton;
51 | Image11: TImage;
52 | LayoutSeparator2: TLayout;
53 | BtnSearch: TSpeedButton;
54 | Image12: TImage;
55 | Layout2: TLayout;
56 | EditHighlight: TEdit;
57 | BtnHighlight: TSpeedButton;
58 | Image13: TImage;
59 | DialogSave: TSaveDialog;
60 | DialogOpen: TOpenDialog;
61 | DialogSearch: TTMSFMXMemoFindDialog;
62 | BtnRun: TSpeedButton;
63 | Image1: TImage;
64 | BtnLaunchOpenSCAD: TSpeedButton;
65 | DialogFindAndReplace: TTMSFMXMemoFindAndReplaceDialog;
66 | CheckBoxAutoSave: TCheckBox;
67 | CheckBoxAutoExecute: TCheckBox;
68 | TimerExecute: TTimer;
69 | BtnChangeTimerInterval: TSpeedButton;
70 | Image2: TImage;
71 | Layout1: TLayout;
72 | Layout3: TLayout;
73 | Layout4: TLayout;
74 | MenuItemAbout: TMenuItem;
75 | ExpanderExecuteOptions: TExpander;
76 | TextEditor: TTMSFMXMemo;
77 | DialogGetOpenSCADPath: TOpenDialog;
78 | CheckBoxApplyViewAll: TCheckBox;
79 | PathDialog: TOpenDialog;
80 | BtnPathToExe: TSpeedButton;
81 | Image3: TImage;
82 | LabelExePath: TLabel;
83 | ComboBoxFileType: TComboBox;
84 | CheckBoxAndOpen: TCheckBox;
85 | BtnExport: TSpeedButton;
86 | Image14: TImage;
87 | EditFileName: TEdit;
88 | LabelExport: TLabel;
89 | StyleBookCustomized: TStyleBook;
90 | procedure BtnLoadFromFileClick(Sender: TObject);
91 | procedure BtnSaveToFileClick(Sender: TObject);
92 | procedure BtnUndoClick(Sender: TObject);
93 | procedure BtnRedoClick(Sender: TObject);
94 | procedure BtnPasteClick(Sender: TObject);
95 | procedure BtnCutClick(Sender: TObject);
96 | procedure BtnCopyClick(Sender: TObject);
97 | procedure BtnSearchClick(Sender: TObject);
98 | procedure BtnBookmarkClick(Sender: TObject);
99 | procedure BtnHighlightClick(Sender: TObject);
100 | procedure FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
101 | procedure BtnRunClick(Sender: TObject);
102 | procedure FormCreate(Sender: TObject);
103 | procedure FormDestroy(Sender: TObject);
104 | procedure MenuItemReplaceClick(Sender: TObject);
105 | procedure MenuItemSaveAsClick(Sender: TObject);
106 | procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
107 | procedure MenuItemNewClick(Sender: TObject);
108 | procedure MenuItemExitClick(Sender: TObject);
109 | procedure TextEditorKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
110 | procedure CheckBoxAutoExecuteChange(Sender: TObject);
111 | procedure BtnChangeTimerIntervalClick(Sender: TObject);
112 | procedure MenuItemAboutClick(Sender: TObject);
113 | procedure BtnPathToExeClick(Sender: TObject);
114 | procedure EditFileNameDblClick(Sender: TObject);
115 | procedure BtnExportClick(Sender: TObject);
116 | private
117 | const
118 | MainCaption = 'senCilleSCAD IDE';
119 | TextNotPath = 'Path to exe not informed';
120 | var
121 | FFileName :string;
122 | FTempFileName :string;
123 | FOpenSCADPath :string;
124 | FINIFileName :string;
125 | FTimerInterval :Integer;
126 | FOpenSCADStyler :TOpenSCADStyler;
127 | FPathToExe :string;
128 | procedure SetFileName(Value :string);
129 | function GetOpenSCADPath:string;
130 | procedure CallWebHelp;
131 | procedure CreateDefaultConfigFile;
132 | procedure SaveConfiguration;
133 | function CheckExtension(AFileName :string):string;
134 | function OpenURL(sCommand: string):Integer;
135 | procedure SetPathToExe(Value :string);
136 | public
137 | property FileName :string read FFileName write SetFileName;
138 | property OpenSCADPath :string read GetOpenSCADPath write FOpenSCADPath;
139 | property PathToExe :string read FPathToExe write SetPathToExe;
140 | end;
141 |
142 | var
143 | FView: TFView;
144 |
145 | implementation
146 |
147 | {$R *.fmx}
148 |
149 | uses {$IFDEF ANDROID}
150 | FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText,
151 | Androidapi.JNI.Net, Androidapi.JNI.JavaTypes,
152 | {$ELSE}
153 | {$IFDEF IOS}
154 | iOSapi.Foundation, FMX.Helpers.iOS,
155 | {$ENDIF IOS}
156 | {$ENDIF ANDROID}
157 |
158 | {$IFDEF MSWINDOWS}
159 | Winapi.ShellAPI, Winapi.Windows,
160 | {$ELSEIF DEFINED(MACOS)}
161 | Posix.Stdlib,
162 | {$ENDIF}
163 | {IdURI,}
164 | System.IOUtils, System.INIFiles,
165 | FMX.DialogService, FMX.DialogService.Async,
166 | AboutsenCille;
167 | {}
168 | constructor TOpenSCADStyler.Create(AOwner: TComponent);
169 | var itm :TElementStyle;
170 | begin
171 | inherited;
172 | BlockStart := '{';
173 | BlockEnd := '}';
174 | LineComment := '//';
175 | MultiCommentLeft := '/*';
176 | MultiCommentRight := '*/';
177 | CommentStyle.TextColor := TAlphaColorRec.Navy;
178 | CommentStyle.BkColor := TAlphaColorRec.Null;
179 | CommentStyle.Style := [TFontStyle.fsItalic];
180 | NumberStyle.TextColor := TAlphaColorRec.Fuchsia;
181 | NumberStyle.BkColor := TAlphaColorRec.Null ;
182 | NumberStyle.Style := [TFontStyle.fsBold] ;
183 |
184 | itm := AllStyles.Add;
185 | itm.Info := 'OpenSCAD';
186 | itm.FontColor := TAlphaColorRec.Green;
187 | itm.Font.Style := [TFontStyle.fsBold];
188 | {--- Syntax ---}
189 | itm.KeyWords.Add('var' );
190 | itm.KeyWords.Add('value' );
191 | itm.KeyWords.Add('module' );
192 | itm.KeyWords.Add('function');
193 | itm.KeyWords.Add('include' );
194 | itm.KeyWords.Add('use' );
195 | {--- 2D ---}
196 | itm.KeyWords.Add('circle' );
197 | itm.KeyWords.Add('square' );
198 | itm.KeyWords.Add('polygon' );
199 | itm.KeyWords.Add('text' );
200 | {--- 3D ---}
201 | itm.KeyWords.Add('sphere' );
202 | itm.KeyWords.Add('cube' );
203 | itm.KeyWords.Add('cylinder' );
204 | itm.KeyWords.Add('polyhedron');
205 | {--- Transformations ---}
206 | itm.KeyWords.Add('translate');
207 | itm.KeyWords.Add('rotate' );
208 | itm.KeyWords.Add('scale' );
209 | itm.KeyWords.Add('resize' );
210 | itm.KeyWords.Add('mirror' );
211 | itm.KeyWords.Add('mulmatrix');
212 | itm.KeyWords.Add('color' );
213 | itm.KeyWords.Add('offset' );
214 | itm.KeyWords.Add('hull' );
215 | itm.KeyWords.Add('minkowsky');
216 | {--- Boolean operations ---}
217 | itm.KeyWords.Add('union' );
218 | itm.KeyWords.Add('difference' );
219 | itm.KeyWords.Add('intersection');
220 | {--- Mathematical ---}
221 | itm.KeyWords.Add('abs' );
222 | itm.KeyWords.Add('sign' );
223 | itm.KeyWords.Add('sin' );
224 | itm.KeyWords.Add('cos' );
225 | itm.KeyWords.Add('tan' );
226 | itm.KeyWords.Add('acos' );
227 | itm.KeyWords.Add('asin' );
228 | itm.KeyWords.Add('atan' );
229 | itm.KeyWords.Add('atan2');
230 | itm.KeyWords.Add('floor');
231 | itm.KeyWords.Add('round');
232 | itm.KeyWords.Add('cell' );
233 | itm.KeyWords.Add('ln' );
234 | itm.KeyWords.Add('len' );
235 | itm.KeyWords.Add('let' );
236 | itm.KeyWords.Add('log' );
237 | itm.KeyWords.Add('pow' );
238 | itm.KeyWords.Add('sqrt' );
239 | itm.KeyWords.Add('exp' );
240 | itm.KeyWords.Add('rands');
241 | itm.KeyWords.Add('min' );
242 | itm.KeyWords.Add('max' );
243 | //itm.KeyWords.Add('
244 | //itm.KeyWords.Add('
245 | //itm.KeyWords.Add('
246 | //itm.KeyWords.Add('
247 |
248 | (*item
249 | Font.Family = 'Courier New'
250 | Font.Size = 8.000000000000000000
251 | FontColor = claBlue
252 | BGColor = claNull
253 | StyleType = stBracket
254 | BracketStart = #39
255 | BracketEnd = #39
256 | Info = 'Simple Quote'
257 | end
258 | item
259 | Font.Family = 'Courier New'
260 | Font.Size = 8.000000000000000000
261 | FontColor = claBlue
262 | BGColor = claNull
263 | StyleType = stBracket
264 | BracketStart = '"'
265 | BracketEnd = '"'
266 | Info = 'Double Quote'
267 | end
268 | item
269 | Font.Family = 'Courier New'
270 | Font.Size = 8.000000000000000000
271 | FontColor = claRed
272 | BGColor = claNull
273 | StyleType = stSymbol
274 | BracketStart = #0
275 | BracketEnd = #0
276 | Symbols = ' ,;:.()[]=-*/^%&^<>|!~'#13#10
277 | Info = 'Symbols Delimiters'
278 | end
279 | item
280 | CommentLeft = '/*'
281 | CommentRight = '*/'
282 | Font.Family = 'Courier New'
283 | Font.Size = 9.000000000000000000
284 | FontColor = claBlack
285 | BGColor = claNull
286 | StyleType = stKeyword
287 | BracketStart = #0
288 | BracketEnd = #0
289 | Info = 'Open SCAD'
290 | end>*)
291 | HintParameter.TextColor := TAlphaColorRec.Black;
292 | HintParameter.BkColor := TAlphaColorRec.Yellow;
293 | HintParameter.HintCharStart := '(';
294 | HintParameter.HintCharEnd := ')';
295 | HintParameter.HintCharDelimiter := ';';
296 | HintParameter.HintClassDelimiter := '.';
297 | HintParameter.HintCharWriteDelimiter := ',';
298 | HexIdentifier := '0x' ;
299 | Description := 'Open SCAD Styler';
300 | Filter := 'Open SCAD|*.scad';
301 | DefaultExtension := '.scad' ;
302 | StylerName := 'Open SCAD Styler';
303 | Extensions := 'scad' ;
304 | (*RegionDefinitions = <
305 | item
306 | Identifier = 'namespace'
307 | RegionStart = '{'
308 | RegionEnd = '}'
309 | RegionType = rtClosed
310 | ShowComments = False
311 | end
312 | item
313 | Identifier = '#region'
314 | RegionStart = '#region'
315 | RegionEnd = '#endregion'
316 | RegionType = rtClosed
317 | ShowComments = False
318 | end
319 | item
320 | Identifier = 'public'
321 | RegionStart = '{'
322 | RegionEnd = '}'
323 | RegionType = rtClosed
324 | ShowComments = False
325 | end
326 | item
327 | Identifier = 'private'
328 | RegionStart = '{'
329 | RegionEnd = '}'
330 | RegionType = rtClosed
331 | ShowComments = False
332 | end>*)
333 | end;
334 |
335 | procedure TFView.FormCreate(Sender: TObject);
336 | var INIFile :TIniFile;
337 | ExeName :string;
338 | Extension :string;
339 | AppName :string;
340 | AppFolder :string;
341 | FileType :string;
342 | begin
343 | FTimerInterval := 1500;
344 | FView.TimerExecute.Enabled := False;
345 | FView.ExpanderExecuteOptions.IsExpanded := False;
346 | FView.LabelExePath.Text := TextNotPath;
347 | FPathToExe := '';
348 | FView.TextEditor.Font.Family := 'Courier New';
349 | FView.TextEditor.Font.Size := 12;
350 |
351 | AppFolder := TPath.GetDirectoryName(ParamStr(0));
352 | ExeName := ExtractFileName(ParamStr(0));
353 | Extension := ExtractFileExt (ParamStr(0));
354 | AppName := Copy(ExeName, 1, Length(ExeName) - Length(Extension));
355 | FINIFileName := GetEnvironmentVariable('APPDATA')+PathDelim+AppName+'.ini';
356 |
357 | {--- Things in development ---}
358 | FView.CheckBoxApplyViewAll.Visible := False;
359 | FView.CheckBoxAndOpen.Visible := False;
360 | {-----------------------------}
361 |
362 | if not TFile.Exists(FINIFileName) then begin
363 | CreateDefaultConfigFile;
364 | end;
365 |
366 | INIFile := TIniFile.Create(FINIFileName);
367 | try
368 | {OPTIONS}
369 | OpenSCADPath := INIFile.ReadString('OPTIONS', 'OpenSCADPath', '');
370 | FView.CheckBoxAutoSave.IsChecked := INIFile.ReadString('OPTIONS', 'AutoSave', 'N') = 'Y';
371 | FView.CheckBoxAutoExecute.IsChecked := INIFile.ReadString('OPTIONS', 'AutoExecute', 'N') = 'Y';
372 | FileName := INIFile.ReadString('OPTIONS', 'LastFile', '');
373 | if FileName <> '' then begin
374 | if TFile.Exists(FileName) then begin
375 | FView.TextEditor.Lines.LoadFromFile(FileName);
376 | FView.TextEditor.SyntaxStyles := FOpenSCADStyler;
377 | FView.TextEditor.UseStyler := True;
378 | end;
379 | end;
380 | FTimerInterval := INIFile.ReadInteger('OPTIONS', 'TimerInterval', 1500);
381 |
382 | PathToExe := INIFile.ReadString('EXECUTE', 'PathToExe', '');
383 | FView.CheckBoxApplyViewAll.IsChecked := INIFile.ReadString('EXECUTE', 'ApplyViewAll', 'Y') = 'Y';
384 |
385 | FView.CheckBoxAndOpen.IsChecked := INIFile.ReadString('EXPORT', 'AndOpen', 'Y') = 'Y';
386 | FView.EditFileName.Text := INIFile.ReadString('EXPORT', 'FileName', '');
387 | FileType := INIFile.ReadString('EXPORT', 'FileType', '');
388 | if FileType = 'PNG' then FView.ComboBoxFileType.ItemIndex := 0 else
389 | if FileType = 'STL' then FView.ComboBoxFileType.ItemIndex := 1 else
390 | if FileType = 'OFF' then FView.ComboBoxFileType.ItemIndex := 2 else
391 | if FileType = 'DXF' then FView.ComboBoxFileType.ItemIndex := 3 else
392 | if FileType = 'CSG' then FView.ComboBoxFileType.ItemIndex := 4
393 | else FView.ComboBoxFileType.ItemIndex := -1;
394 | finally
395 | INIFile.Free;
396 | end;
397 | {--- Editor Configuration ---}
398 | FView.TextEditor.ActiveLineSettings.ActiveLineAtCursor := True;
399 | FView.TextEditor.ActiveLineSettings.ShowActiveLine := True;
400 | FView.TextEditor.ActiveLineSettings.ShowActiveLineIndicator := True;
401 | FView.TextEditor.AutoIndent := True;
402 | FView.TextEditor.DelErase := True;
403 | FView.TextEditor.SmartTabs := True;
404 | FView.TextEditor.WantTab := True;
405 | FView.TextEditor.ShowRightMargin := False;
406 | {---}
407 | FOpenSCADStyler := TOpenSCADStyler.Create(FView);
408 | FView.TextEditor.SyntaxStyles := FOpenSCADStyler;
409 | FView.TextEditor.UseStyler := True;
410 | end;
411 |
412 | procedure TFView.SaveConfiguration;
413 | var INIFile :TIniFile;
414 | lBool :string;
415 | begin
416 |
417 | INIFile := TIniFile.Create(FINIFileName);
418 | try
419 | if FView.CheckBoxAutoSave.IsChecked then
420 | lBool := 'Y'
421 | else lBool := 'N';
422 | INIFile.WriteString('OPTIONS', 'AutoSave', lBool);
423 |
424 | if FView.CheckBoxAutoExecute.IsChecked then
425 | lBool := 'Y'
426 | else lBool := 'N';
427 | INIFile.WriteString('OPTIONS', 'AutoExecute', lBool);
428 |
429 | INIFile.WriteString('OPTIONS', 'LastFile', FileName);
430 | INIFile.WriteString('OPTIONS', 'LastFile', FileName);
431 |
432 | INIFile.WriteInteger('OPTIONS', 'TimerInterval', FTimerInterval);
433 |
434 | {-----}
435 |
436 | INIFile.WriteString('EXECUTE', 'PathToExe', PathToExe);
437 |
438 | if FView.CheckBoxApplyViewAll.IsChecked then
439 | lBool := 'Y'
440 | else lBool := 'N';
441 | INIFile.WriteString('EXECUTE', 'ApplyViewAll', lBool);
442 |
443 | if FView.CheckBoxAndOpen.IsChecked then
444 | lBool := 'Y'
445 | else lBool := 'N';
446 | INIFile.WriteString('EXPORT', 'AndOpen', lBool);
447 |
448 | INIFile.WriteString('EXPORT', 'FileName', EditFileName.Text);
449 |
450 | case FView.ComboBoxFileType.ItemIndex of
451 | 0 :INIFile.WriteString('EXPORT', 'FileType', 'PNG');
452 | 1 :INIFile.WriteString('EXPORT', 'FileType', 'STL');
453 | 2 :INIFile.WriteString('EXPORT', 'FileType', 'OFF');
454 | 3 :INIFile.WriteString('EXPORT', 'FileType', 'DXF');
455 | 4 :INIFile.WriteString('EXPORT', 'FileType', 'CSG');
456 | else INIFile.WriteString('EXPORT', 'FileType', '' );
457 | end;
458 |
459 | INIFile.UpdateFile;
460 | finally
461 | INIFile.Free;
462 | end;
463 | end;
464 |
465 | procedure TFView.SetFileName(Value :string);
466 | begin
467 | if FFileName <> Value then begin
468 | FFileName := Value;
469 | FView.Caption := ExtractFileName(Value) + ' ('+MainCaption+')';
470 | end;
471 | end;
472 |
473 | procedure TFView.SetPathToExe(Value: string);
474 | begin
475 | if FPathToExe <> Value then begin
476 | FPathToExe := Value;
477 | LabelExePath.Text := Value;
478 | end;
479 | end;
480 |
481 | procedure TFView.BtnPathToExeClick(Sender: TObject);
482 | begin
483 | if FView.PathDialog.Execute then begin
484 | PathToExe := FView.PathDialog.FileName;
485 | end;
486 | end;
487 |
488 | procedure TFView.TextEditorKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
489 | begin
490 | FView.TimerExecute.Enabled := False;
491 | FView.TimerExecute.Interval := FTimerInterval;
492 | FView.TimerExecute.Enabled := True;
493 | end;
494 |
495 | procedure TFView.BtnBookmarkClick(Sender: TObject);
496 | begin
497 | FView.TextEditor.Bookmark[FView.TextEditor.CurY] := not FView.TextEditor.Bookmark[FView.TextEditor.CurY];
498 | end;
499 |
500 | procedure TFView.BtnChangeTimerIntervalClick(Sender: TObject);
501 | var Value :Integer;
502 | begin
503 | TDialogServiceAsync.InputQuery('Interval Between Executions', ['Miliseconds'], [IntToStr(FTimerInterval)],
504 | procedure(const AResult: TModalResult; const AValues: array of string)
505 | begin
506 | if AResult = mrOk then begin
507 | if TryStrToInt(AValues[0], Value) then
508 | FTimerInterval := Value;
509 | end;
510 | end
511 | );
512 | end;
513 |
514 | procedure TFView.BtnCopyClick(Sender: TObject);
515 | begin
516 | FView.TextEditor.CopyToClipboard;
517 | end;
518 |
519 | procedure TFView.BtnCutClick(Sender: TObject);
520 | begin
521 | FView.TextEditor.CutToClipboard;
522 | end;
523 |
524 | {$IFDEF MSWINDOWS}
525 | // Runs application and returns PID. 0 if failed.
526 | function RunApplication(const AExecutableFile, AParameters: string; const AShowOption: Integer = SW_SHOWNORMAL): Integer;
527 | var _SEInfo: TShellExecuteInfo;
528 | begin
529 | Result := 0;
530 | if not FileExists(AExecutableFile) then
531 | Exit;
532 |
533 | FillChar(_SEInfo, SizeOf(_SEInfo), 0);
534 | _SEInfo.cbSize := SizeOf(TShellExecuteInfo);
535 | _SEInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
536 | // _SEInfo.Wnd := Application.Handle;
537 | _SEInfo.lpFile := PChar(AExecutableFile);
538 | _SEInfo.lpParameters := PChar(AParameters);
539 | _SEInfo.nShow := AShowOption;
540 | if ShellExecuteEx(@_SEInfo) then begin
541 | WaitForInputIdle(_SEInfo.hProcess, 3000);
542 | Result := GetProcessID(_SEInfo.hProcess);
543 | end;
544 | end;
545 | {$ENDIF}
546 |
547 | procedure TFView.BtnExportClick(Sender: TObject);
548 | var Parameters :string;
549 | NewFileName :string;
550 | begin
551 | if FView.PathToExe.Trim = '' then begin
552 | ShowMessage('Indicate first, the path to de OpenSCAD executable.');
553 | Exit;
554 | end;
555 |
556 | if FView.FileName.Trim = '' then begin
557 | ShowMessage('Specify a name for the output file.');
558 | Exit;
559 | end;
560 |
561 | NewFileName := TPath.GetDirectoryName(FileName)+'\'+EditFileName.Text.Trim+'.'+ComboBoxFileType.Items[ComboBoxFileType.ItemIndex];
562 | Parameters := ' -o ';
563 | {$IFDEF MSWINDOWS}
564 | RunApplication(PathToExe, Parameters+' "'+NewFileName+'" "'+FTempFileName+'"');
565 | {$ENDIF}
566 | if FView.CheckBoxAndOpen.IsChecked then begin
567 | OpenURL('"'+NewFileName+'"');
568 | //ShellExecute(0, 'OPEN', PChar(NewFileName), '', '', SW_SHOWNORMAL);
569 | end;
570 | (*
571 | [ --camera=translatex,y,z,rotx,y,z,dist | \
572 | --camera=eyex,y,z,centerx,y,z ] \
573 | [ --autocenter ] \
574 | [ --viewall ] \
575 | [ --imgsize=width,height ] [ --projection=(o)rtho|(p)ersp] \
576 | [ --render | --preview[=throwntogether] ] \
577 | [ --colorscheme=[Cornfield|Sunset|Metallic|Starnight|BeforeDawn|Nature|DeepOcean] ] \
578 | [ --csglimit=num ]\
579 | *)
580 | end;
581 |
582 | procedure TFView.BtnHighlightClick(Sender: TObject);
583 | begin
584 | FView.TextEditor.HighlightText := FView.EditHighlight.Text;
585 | end;
586 |
587 | procedure TFView.BtnLoadFromFileClick(Sender: TObject);
588 | begin
589 | if FView.DialogOpen.Execute then begin
590 | FileName := FView.DialogOpen.FileName;
591 | FView.TextEditor.Lines.LoadFromFile(FFileName);
592 | FView.TextEditor.SyntaxStyles := FOpenSCADStyler;
593 | FView.TextEditor.UseStyler := True;
594 | end;
595 | end;
596 |
597 | procedure TFView.BtnPasteClick(Sender: TObject);
598 | begin
599 | FView.TextEditor.PasteFromClipboard;
600 | end;
601 |
602 | procedure TFView.BtnRedoClick(Sender: TObject);
603 | begin
604 | FView.TextEditor.Redo;
605 | end;
606 |
607 | procedure TFView.BtnRunClick(Sender: TObject);
608 | var Parameters :string;
609 | begin
610 | Parameters := '';
611 | if FView.CheckBoxApplyViewAll.IsChecked then
612 | Parameters := ' --viewall ';
613 |
614 | //Parameters := ' --colorscheme=Metallic ';
615 |
616 | if FTempFileName.Trim = '' then begin
617 | FTempFileName := TPath.GetTempPath+ExtractFileName(TPath.GetRandomFileName)+'.scad';
618 | FView.TextEditor.Lines.SaveToFile(FTempFileName);
619 | if PathToExe.Trim <> '' then begin
620 | //RunApplication(PathToExe, Parameters+' "'+FTempFileName+'"');
621 | OpenURL(FTempFileName{+' '+Parameters});
622 | //ShellExecute(0, 'OPEN', PChar('"'+PathToExe+'" '+Parameters+'"'+FTempFileName+'"'), '', '', SW_SHOWNORMAL);
623 |
624 | (*
625 | --colorscheme=Metallic
626 | [ --camera=translatex,y,z,rotx,y,z,dist | \
627 | --camera=eyex,y,z,centerx,y,z ] \
628 | [ --autocenter ] \
629 | [ --viewall ] \
630 | [ --imgsize=width,height ] [ --projection=(o)rtho|(p)ersp] \
631 | [ --render | --preview[=throwntogether] ] \
632 | [ --colorscheme=[Cornfield|Sunset|Metallic|Starnight|BeforeDawn|Nature|DeepOcean] ] \
633 | [ --csglimit=num ]\
634 | *)
635 |
636 | end
637 | else OpenURL(FTempFileName);
638 | end
639 | else begin
640 | FView.TextEditor.Lines.SaveToFile(FTempFileName);
641 | end;
642 | end;
643 |
644 | function TFView.OpenURL(sCommand: string):Integer;
645 | begin
646 | {$IF DEFINED(MACOS)}
647 | _system(PAnsiChar('open ' + '"' + AnsiString(sCommand) + '"'));
648 | {$ELSEIF DEFINED(MSWINDOWS)}
649 | Result := ShellExecute(0, 'OPEN', PChar(sCommand), '', '', SW_SHOWNORMAL);
650 | {$ELSEIF DEFINED(IOS)}
651 | Result := prvOpenURL(sCommand);
652 | {$ELSEIF DEFINED(ANDROID)}
653 | Result := prvOpenURL(sCommand);
654 | {$ENDIF}
655 | end;
656 |
657 | procedure TFView.BtnSaveToFileClick(Sender: TObject);
658 | begin
659 | if FFileName.Trim <> '' then begin
660 | FView.TextEditor.Lines.SaveToFile(FFileName);
661 | end else
662 | if FView.DialogSave.Execute then begin
663 | FView.TextEditor.Lines.SaveToFile(FView.DialogSave.FileName);
664 | end;
665 | end;
666 |
667 | procedure TFView.BtnSearchClick(Sender: TObject);
668 | begin
669 | FView.DialogSearch.Memo := FView.TextEditor;
670 | FView.DialogSearch.Execute;
671 | end;
672 |
673 | procedure TFView.BtnUndoClick(Sender: TObject);
674 | begin
675 | FView.TextEditor.Undo;
676 | end;
677 |
678 | procedure TFView.CallWebHelp;
679 | begin
680 | OpenURL('https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#'+FView.TextEditor.FullWordAtCursor);
681 | end;
682 |
683 | function TFView.GetOpenSCADPath:string;
684 | var Path :string;
685 | begin
686 | if FOpenSCADPath.Trim = '' then begin
687 | if FView.DialogGetOpenSCADPath.Execute then begin
688 | Path := FView.DialogGetOpenSCADPath.FileName;
689 | FOpenSCADPath := Path;
690 | Result := FOpenSCADPath;
691 | end;
692 | end
693 | else Result := FOpenSCADPath;
694 | end;
695 |
696 | procedure TFView.MenuItemSaveAsClick(Sender: TObject);
697 | begin
698 | if FFileName.Trim <> '' then begin
699 | FView.DialogSave.FileName := ExtractFileName(FileName);
700 | end;
701 |
702 | if FView.DialogSave.Execute then begin
703 | FView.TextEditor.Lines.SaveToFile(FView.DialogSave.FileName);
704 | FileName := FView.DialogSave.FileName;
705 | end;
706 | end;
707 |
708 | procedure TFView.MenuItemAboutClick(Sender: TObject);
709 | var View :TAboutInvoicingView;
710 | begin
711 | View := TAboutInvoicingView.Create(Application);
712 | try
713 | View.ShowModal;
714 | finally
715 | View.Close;
716 | end;
717 | end;
718 |
719 | procedure TFView.MenuItemExitClick(Sender: TObject);
720 | begin
721 | FView.Close;
722 | end;
723 |
724 | procedure TFView.MenuItemNewClick(Sender: TObject);
725 | var AllowClear :Boolean;
726 | begin
727 | if FView.TextEditor.Modified then begin
728 | TDialogService.PreferredMode := TDialogService.TPreferredMode.Platform;
729 | TDialogService.MessageDialog('do you want to discard current changes?', TMsgDlgType.mtConfirmation,
730 | [TMsgDlgBtn.mbOk, TMsgDlgBtn.mbCancel], TMsgDlgBtn.mbCancel, 0,
731 | procedure(const AResult: TModalResult)
732 | begin
733 | case AResult of
734 | mrOk : AllowClear := True;
735 | mrCancel: AllowClear := False;
736 | end;
737 | end);
738 | end
739 | else AllowClear := True;
740 |
741 | if AllowClear then begin
742 | FileName := '';
743 | TextEditor.Clear;
744 | end;
745 | end;
746 |
747 | procedure TFView.MenuItemReplaceClick(Sender: TObject);
748 | begin
749 | FView.DialogFindAndReplace.Memo := FView.TextEditor;
750 | FView.DialogFindAndReplace.Execute;
751 | end;
752 |
753 | procedure TFView.CreateDefaultConfigFile;
754 | var INIFile :TIniFile;
755 | begin
756 | INIFile := TIniFile.Create(FINIFileName);
757 | try
758 | INIFile.WriteString('OPTIONS', 'OpenSCADPath', '');
759 | INIFile.UpdateFile;
760 | finally
761 | INIFile.Free;
762 | end;
763 | end;
764 |
765 | procedure TFView.EditFileNameDblClick(Sender: TObject);
766 | var Name :string;
767 | Ext :string;
768 | begin
769 | Name := ExtractFileName(FileName);
770 | Ext := ExtractFileExt (Name );
771 | EditFileName.Text := Copy(Name, 1, Length(Name) - Length(Ext));
772 | end;
773 |
774 | procedure TFView.CheckBoxAutoExecuteChange(Sender: TObject);
775 | begin
776 | FView.TimerExecute.Enabled := FView.CheckBoxAutoExecute.IsChecked;
777 | end;
778 |
779 | function TFView.CheckExtension(AFileName :string):string;
780 | var Extension :string;
781 | begin
782 | Extension := TPath.GetExtension(AFileName);
783 | if Extension.Trim = '' then
784 | Result := AFileName+'.scad'
785 | else Result := AFileName;
786 | end;
787 |
788 | procedure TFView.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
789 | var AllowClose :Boolean;
790 | begin
791 | if FView.CheckBoxAutoSave.IsChecked then begin
792 | if FView.TextEditor.Modified then begin
793 | if FileName <> '' then begin
794 | FView.TextEditor.Lines.SaveToFile(FFileName);
795 | CanClose := True;
796 | end
797 | else begin
798 | FView.DialogSave.FileName := ExtractFileName(FileName);
799 | if FView.DialogSave.Execute then begin
800 | FileName := CheckExtension(FView.DialogSave.FileName);
801 | FView.TextEditor.Lines.SaveToFile(FileName);
802 | CanClose := True;
803 | end
804 | else CanClose := False;
805 | end;
806 | end
807 | else begin {Not modified}
808 | CanClose := True;
809 | end;
810 | end
811 | else begin {not Autosave checked}
812 | if FView.TextEditor.Modified then begin
813 | TDialogService.PreferredMode := TDialogService.TPreferredMode.Platform;
814 | TDialogService.MessageDialog('do you want to discard current changes?', TMsgDlgType.mtConfirmation,
815 | [TMsgDlgBtn.mbOk, TMsgDlgBtn.mbCancel], TMsgDlgBtn.mbCancel, 0,
816 | procedure(const AResult: TModalResult)
817 | begin
818 | case AResult of
819 | mrOk : AllowClose := True;
820 | mrCancel: AllowClose := False;
821 | end;
822 | end);
823 | CanClose := AllowClose;
824 | end;
825 | end;
826 |
827 | if CanClose then SaveConfiguration;
828 | end;
829 |
830 | procedure TFView.FormDestroy(Sender: TObject);
831 | begin
832 | FOpenSCADStyler.Free;
833 | end;
834 |
835 | procedure TFView.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
836 | begin
837 | case Key of
838 | vkF1 :begin FView.CallWebHelp; Key := 0; end;
839 | else begin
840 | case Key of
841 | //vkF3 :begin if FView.BtnModify.Enabled then begin FView.BtnModify.SetFocus; FView.BtnModify.OnClick(Self); Key := 0; end; end;
842 | //vkF8 :begin if FView.BtnReport.Enabled then begin FView.BtnReport.SetFocus; FView.BtnReport.OnClick(Self); Key := 0; end; end;
843 | vkF9 :begin if FView.BtnRun.Enabled then begin FView.BtnRun.SetFocus; FView.BtnRun.OnClick(Self); Key := 0; end; end;
844 | //vkESCAPE:begin if FView.BtnCancel.Enabled then begin FView.BtnCancel.SetFocus; FView.BtnCancel.OnClick(Self); Key := 0; end; end;
845 | end;
846 | end;
847 | end;
848 | end;
849 |
850 | end.
851 |
852 |
853 | openscad [ -o output_file [ -d deps_file ] ]\
854 |
855 | [ -m make_command ] [ -D var=val [..] ] \
856 | [ --help ] print this help message and exit \
857 | [ --version ] [ --info ] \
858 |
859 | [ --camera=translatex,y,z,rotx,y,z,dist | \
860 | --camera=eyex,y,z,centerx,y,z ] \
861 | [ --autocenter ] \
862 | [ --viewall ] \
863 | [ --imgsize=width,height ] [ --projection=(o)rtho|(p)ersp] \
864 | [ --render | --preview[=throwntogether] ] \
865 | [ --colorscheme=[Cornfield|Sunset|Metallic|Starnight|BeforeDawn|Nature|DeepOcean] ] \
866 | [ --csglimit=num ]\
867 |
868 | filename
869 |
--------------------------------------------------------------------------------
/senCilleSCAD.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {A1E00957-BA39-49E3-9093-73504C30DB51}
4 | 18.3
5 | FMX
6 | senCilleSCAD.dpr
7 | True
8 | Debug
9 | Win64
10 | 7
11 | Application
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Base
34 | true
35 |
36 |
37 | true
38 | Base
39 | true
40 |
41 |
42 | true
43 | Base
44 | true
45 |
46 |
47 | true
48 | Base
49 | true
50 |
51 |
52 | true
53 | Base
54 | true
55 |
56 |
57 | true
58 | Cfg_1
59 | true
60 | true
61 |
62 |
63 | true
64 | Cfg_1
65 | true
66 | true
67 |
68 |
69 | true
70 | Cfg_1
71 | true
72 | true
73 |
74 |
75 | true
76 | Cfg_1
77 | true
78 | true
79 |
80 |
81 | true
82 | Cfg_1
83 | true
84 | true
85 |
86 |
87 | true
88 | Base
89 | true
90 |
91 |
92 | true
93 | Cfg_2
94 | true
95 | true
96 |
97 |
98 | senCilleSCAD
99 | $(BDS)\bin\default_app.manifest
100 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)
101 | $(BDS)\bin\delphi_PROJECTICON.ico
102 | .\$(Platform)\$(Config)
103 | .\$(Platform)\$(Config)
104 | true
105 | true
106 | true
107 | true
108 | true
109 | true
110 | true
111 | $(BDS)\bin\delphi_PROJECTICNS.icns
112 | true
113 | true
114 | true
115 | false
116 | false
117 | false
118 | false
119 | false
120 |
121 |
122 | center
123 | disabled
124 | $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png
125 | $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png
126 | $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png
127 | android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar
128 | $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png
129 | 1
130 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png
131 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png
132 | true
133 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png
134 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png
135 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png
136 | package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=preferExternal;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=
137 | Debug
138 |
139 |
140 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png
141 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png
142 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png
143 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png
144 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png
145 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png
146 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png
147 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png
148 | Base
149 | $(MSBuildProjectName)
150 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png
151 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png
152 | fmxhrh;DBXSqliteDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;bindcomp;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapProviderClient;xmlrtl;DbxCommonDriver;IndyProtocols;bindengine;bindcompdbx;CustomIPTransport;dsnap;fmxase;IndyCore;IndyIPCommon;dbexpress;IndyIPClient;$(DCC_UsePackage);$(DCC_UsePackage)
153 | iPhoneAndiPad
154 | true
155 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png
156 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png
157 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png
158 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png
159 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png
160 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png
161 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png
162 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png
163 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png
164 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png
165 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png
166 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png
167 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png
168 | true
169 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png
170 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png
171 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png
172 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png
173 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=6.0;CFBundleVersion=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);CFBundleResourceSpecification=ResourceRules.plist;UIDeviceFamily=iPhone & iPad;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
174 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png
175 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png
176 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png
177 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png
178 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png
179 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png
180 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png
181 | true
182 | Debug
183 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png
184 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png
185 |
186 |
187 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png
188 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png
189 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png
190 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png
191 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png
192 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png
193 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png
194 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png
195 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png
196 | Base
197 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png
198 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png
199 | $(MSBuildProjectName)
200 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png
201 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png
202 | iPhoneAndiPad
203 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png
204 | true
205 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png
206 | fmxhrh;DBXSqliteDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;bindcomp;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapProviderClient;xmlrtl;DbxCommonDriver;IndyProtocols;bindengine;bindcompdbx;CustomIPTransport;dsnap;fmxase;IndyCore;IndyIPCommon;dbexpress;IndyIPClient;$(DCC_UsePackage);$(DCC_UsePackage)
207 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png
208 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png
209 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png
210 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png
211 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png
212 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png
213 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png
214 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png
215 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png
216 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png
217 | true
218 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png
219 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png
220 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png
221 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png
222 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=6.0;CFBundleVersion=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);CFBundleResourceSpecification=ResourceRules.plist;UIDeviceFamily=iPhone & iPad;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
223 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png
224 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png
225 | true
226 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png
227 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png
228 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png
229 | Debug
230 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png
231 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png
232 |
233 |
234 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png
235 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png
236 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png
237 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png
238 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png
239 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png
240 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png
241 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png
242 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png
243 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png
244 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png
245 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png
246 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png
247 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png
248 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png
249 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png
250 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png
251 | iPhoneAndiPad
252 | fmxhrh;bindcompfmx;DBXSqliteDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;bindcomp;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapProviderClient;xmlrtl;DbxCommonDriver;IndyProtocols;dbxcds;bindengine;bindcompdbx;CustomIPTransport;dsnap;fmxase;IndyCore;IndyIPCommon;dbexpress;IndyIPClient;$(DCC_UsePackage)
253 | true
254 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=6.0;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);CFBundleResourceSpecification=ResourceRules.plist;UIDeviceFamily=iPhone & iPad;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
255 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png
256 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png
257 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png
258 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png
259 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png
260 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png
261 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png
262 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png
263 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png
264 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png
265 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png
266 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png
267 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png
268 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png
269 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png
270 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png
271 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png
272 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png
273 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png
274 |
275 |
276 | true
277 | fmxhrh;FireDACSqliteDriver;FireDACDSDriver;DBXSqliteDriver;FireDACPgDriver;fmx;IndySystem;tethering;DataSnapClient;DataSnapServer;DataSnapCommon;DBXInterBaseDriver;DataSnapProviderClient;DbxCommonDriver;dbxcds;fmxFireDAC;DBXOracleDriver;dsnap;IndyIPServer;fmxase;IndyCore;CloudService;IndyIPCommon;FireDACIBDriver;DataSnapFireDAC;FireDACDBXDriver;soapserver;dsnapxml;FireDACInfxDriver;FireDACASADriver;bindcompfmx;FireDACODBCDriver;RESTBackendComponents;rtl;dbrtl;DbxClientDriver;FireDACCommon;bindcomp;xmlrtl;DataSnapNativeClient;ibxpress;IndyProtocols;DBXMySQLDriver;FireDACCommonDriver;bindcompdbx;bindengine;soaprtl;FireDAC;DBXInformixDriver;FireDACMSSQLDriver;DataSnapServerMidas;DBXFirebirdDriver;inet;fmxobj;FireDACMySQLDriver;soapmidas;DBXSybaseASADriver;FireDACOracleDriver;fmxdae;RESTComponents;DataSnapIndy10ServerTransport;dbexpress;IndyIPClient;$(DCC_UsePackage)
278 | CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts
279 |
280 |
281 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
282 | $(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png
283 | $(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png
284 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
285 | true
286 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
287 | true
288 | 1033
289 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(ModuleName);FileDescription=$(ModuleName);ProductName=$(ModuleName)
290 |
291 |
292 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
293 | $(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png
294 | $(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png
295 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
296 | true
297 | true
298 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)
299 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(ModuleName);FileDescription=$(ModuleName);ProductName=$(ModuleName)
300 | 1033
301 | fmxhrh;FireDACSqliteDriver;FireDACDSDriver;DBXSqliteDriver;FireDACPgDriver;fmx;IndySystem;TeeDB;tethering;vclib;DataSnapClient;DataSnapServer;DataSnapCommon;DBXInterBaseDriver;DataSnapProviderClient;DBXSybaseASEDriver;DbxCommonDriver;vclimg;dbxcds;DatasnapConnectorsFreePascal;MetropolisUILiveTile;vcldb;vcldsnap;fmxFireDAC;DBXDb2Driver;DBXOracleDriver;vclribbon;dsnap;IndyIPServer;fmxase;vcl;IndyCore;CloudService;DBXMSSQLDriver;IndyIPCommon;FireDACIBDriver;DataSnapFireDAC;FireDACDBXDriver;soapserver;dsnapxml;FireDACInfxDriver;FireDACDb2Driver;adortl;FireDACASADriver;bindcompfmx;FireDACODBCDriver;RESTBackendComponents;rtl;dbrtl;DbxClientDriver;FireDACCommon;bindcomp;Tee;DBXOdbcDriver;vclFireDAC;xmlrtl;DataSnapNativeClient;ibxpress;IndyProtocols;DBXMySQLDriver;FireDACCommonDriver;bindcompdbx;bindengine;vclactnband;soaprtl;TeeUI;bindcompvcl;vclie;FireDACADSDriver;vcltouch;VCLRESTComponents;FireDAC;DBXInformixDriver;FireDACMSSQLDriver;Intraweb;VclSmp;DataSnapConnectors;DataSnapServerMidas;DBXFirebirdDriver;dsnapcon;inet;fmxobj;FireDACMySQLDriver;soapmidas;vclx;DBXSybaseASADriver;FireDACOracleDriver;fmxdae;RESTComponents;FireDACMSAccDriver;DataSnapIndy10ServerTransport;dbexpress;IndyIPClient;$(DCC_UsePackage)
302 |
303 |
304 | DEBUG;$(DCC_Define)
305 | true
306 | false
307 | true
308 | true
309 | true
310 |
311 |
312 | 1
313 |
314 |
315 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=6.0;CFBundleVersion=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);CFBundleResourceSpecification=ResourceRules.plist;UIDeviceFamily=iPhone & iPad;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
316 | true
317 |
318 |
319 | Debug
320 |
321 |
322 | .\bin
323 | senCilleSCAD_Icon2.ico
324 | senCilleSCAD_Icns1.icns
325 | C:\views\senCilleSCAD\Images\senCilleSCAD 150x150.png
326 | C:\views\senCilleSCAD\Images\senCilleSCAD 44x44.png
327 | true
328 | 1033
329 | true
330 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)
331 | Debug
332 |
333 |
334 | Debug
335 |
336 |
337 | false
338 | RELEASE;$(DCC_Define)
339 | 0
340 | false
341 |
342 |
343 | 1
344 |
345 |
346 |
347 | MainSource
348 |
349 |
350 | iPhone
351 |
352 | fmx
353 |
354 |
355 |
356 |
357 |
358 | Cfg_2
359 | Base
360 |
361 |
362 | Base
363 |
364 |
365 | Cfg_1
366 | Base
367 |
368 |
369 |
370 | Delphi.Personality.12
371 | Application
372 |
373 |
374 |
375 | senCilleSCAD.dpr
376 |
377 |
378 | (untitled)
379 | Microsoft Office 2000 Sample Automation Server Wrapper Components
380 | Microsoft Office XP Sample Automation Server Wrapper Components
381 |
382 |
383 |
384 | False
385 | False
386 | False
387 | False
388 | True
389 | True
390 | True
391 |
392 |
393 |
394 |
395 | .\
396 | true
397 |
398 |
399 |
400 |
401 | Info.plist
402 | true
403 |
404 |
405 |
406 |
407 | Contents\MacOS\
408 | senCilleSCAD.rsm
409 | true
410 |
411 |
412 |
413 |
414 | senCilleSCAD.icns
415 | true
416 |
417 |
418 |
419 |
420 | true
421 |
422 |
423 |
424 |
425 | senCilleSCAD
426 | true
427 |
428 |
429 |
430 |
431 | true
432 |
433 |
434 |
435 |
436 | Assets\
437 | Logo150x150.png
438 | true
439 |
440 |
441 |
442 |
443 | Assets\
444 | Logo44x44.png
445 | true
446 |
447 |
448 |
449 |
450 | true
451 |
452 |
453 |
454 |
455 | Contents\Resources\StartUp\
456 | true
457 |
458 |
459 |
460 |
461 | senCilleSCAD.rsm
462 | true
463 |
464 |
465 |
466 |
467 | true
468 |
469 |
470 |
471 |
472 | true
473 |
474 |
475 |
476 |
477 | senCilleSCAD.exe
478 | true
479 |
480 |
481 |
482 |
483 | 1
484 |
485 |
486 | Contents\MacOS
487 | 1
488 |
489 |
490 | Contents\MacOS
491 | 0
492 |
493 |
494 |
495 |
496 | classes
497 | 1
498 |
499 |
500 |
501 |
502 | library\lib\armeabi-v7a
503 | 1
504 |
505 |
506 |
507 |
508 | library\lib\armeabi
509 | 1
510 |
511 |
512 |
513 |
514 | library\lib\mips
515 | 1
516 |
517 |
518 |
519 |
520 | library\lib\armeabi-v7a
521 | 1
522 |
523 |
524 |
525 |
526 | res\drawable
527 | 1
528 |
529 |
530 |
531 |
532 | res\values
533 | 1
534 |
535 |
536 |
537 |
538 | res\drawable
539 | 1
540 |
541 |
542 |
543 |
544 | res\drawable-xxhdpi
545 | 1
546 |
547 |
548 |
549 |
550 | res\drawable-ldpi
551 | 1
552 |
553 |
554 |
555 |
556 | res\drawable-mdpi
557 | 1
558 |
559 |
560 |
561 |
562 | res\drawable-hdpi
563 | 1
564 |
565 |
566 |
567 |
568 | res\drawable-xhdpi
569 | 1
570 |
571 |
572 |
573 |
574 | res\drawable-small
575 | 1
576 |
577 |
578 |
579 |
580 | res\drawable-normal
581 | 1
582 |
583 |
584 |
585 |
586 | res\drawable-large
587 | 1
588 |
589 |
590 |
591 |
592 | res\drawable-xlarge
593 | 1
594 |
595 |
596 |
597 |
598 | 1
599 |
600 |
601 | Contents\MacOS
602 | 1
603 |
604 |
605 | 0
606 |
607 |
608 |
609 |
610 | Contents\MacOS
611 | 1
612 | .framework
613 |
614 |
615 | 0
616 |
617 |
618 |
619 |
620 | 1
621 | .dylib
622 |
623 |
624 | 1
625 | .dylib
626 |
627 |
628 | 1
629 | .dylib
630 |
631 |
632 | Contents\MacOS
633 | 1
634 | .dylib
635 |
636 |
637 | 0
638 | .dll;.bpl
639 |
640 |
641 |
642 |
643 | 1
644 | .dylib
645 |
646 |
647 | 1
648 | .dylib
649 |
650 |
651 | 1
652 | .dylib
653 |
654 |
655 | Contents\MacOS
656 | 1
657 | .dylib
658 |
659 |
660 | 0
661 | .bpl
662 |
663 |
664 |
665 |
666 | 0
667 |
668 |
669 | 0
670 |
671 |
672 | 0
673 |
674 |
675 | 0
676 |
677 |
678 | Contents\Resources\StartUp\
679 | 0
680 |
681 |
682 | 0
683 |
684 |
685 |
686 |
687 | 1
688 |
689 |
690 | 1
691 |
692 |
693 | 1
694 |
695 |
696 |
697 |
698 | 1
699 |
700 |
701 | 1
702 |
703 |
704 | 1
705 |
706 |
707 |
708 |
709 | 1
710 |
711 |
712 | 1
713 |
714 |
715 | 1
716 |
717 |
718 |
719 |
720 | 1
721 |
722 |
723 | 1
724 |
725 |
726 | 1
727 |
728 |
729 |
730 |
731 | 1
732 |
733 |
734 | 1
735 |
736 |
737 | 1
738 |
739 |
740 |
741 |
742 | 1
743 |
744 |
745 | 1
746 |
747 |
748 | 1
749 |
750 |
751 |
752 |
753 | 1
754 |
755 |
756 | 1
757 |
758 |
759 | 1
760 |
761 |
762 |
763 |
764 | 1
765 |
766 |
767 |
768 |
769 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
770 | 1
771 |
772 |
773 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
774 | 1
775 |
776 |
777 |
778 |
779 | 1
780 |
781 |
782 | 1
783 |
784 |
785 |
786 |
787 | ..\
788 | 1
789 |
790 |
791 | ..\
792 | 1
793 |
794 |
795 |
796 |
797 | 1
798 |
799 |
800 | 1
801 |
802 |
803 | 1
804 |
805 |
806 |
807 |
808 | 1
809 |
810 |
811 | 1
812 |
813 |
814 | 1
815 |
816 |
817 |
818 |
819 | ..\
820 | 1
821 |
822 |
823 |
824 |
825 | Contents
826 | 1
827 |
828 |
829 |
830 |
831 | Contents\Resources
832 | 1
833 |
834 |
835 |
836 |
837 | library\lib\armeabi-v7a
838 | 1
839 |
840 |
841 | 1
842 |
843 |
844 | 1
845 |
846 |
847 | 1
848 |
849 |
850 | 1
851 |
852 |
853 | Contents\MacOS
854 | 1
855 |
856 |
857 | 0
858 |
859 |
860 |
861 |
862 | 1
863 |
864 |
865 | 1
866 |
867 |
868 |
869 |
870 | Assets
871 | 1
872 |
873 |
874 | Assets
875 | 1
876 |
877 |
878 |
879 |
880 | Assets
881 | 1
882 |
883 |
884 | Assets
885 | 1
886 |
887 |
888 |
889 |
890 |
891 |
892 |
893 |
894 |
895 |
896 |
897 |
898 | 12
899 |
900 |
901 |
902 |
903 |
904 |
--------------------------------------------------------------------------------