Skip to content

Commit 6a26b4d

Browse files
committed
QuickStart.md have more concrete sinstructions
The grouproject now point to examples and unittests.
1 parent 369ac09 commit 6a26b4d

24 files changed

Lines changed: 870 additions & 451 deletions

File tree

BoldForDelphi.groupproj

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<PropertyGroup>
3+
<ProjectGuid>{DFD5A34D-3F28-461E-9001-16DFEADD40A9}</ProjectGuid>
4+
</PropertyGroup>
5+
<ItemGroup>
6+
<Projects Include="examples\Simple\ObjectSpace\MasterDetail\MasterDetail.dproj">
7+
<Dependencies/>
8+
</Projects>
9+
<Projects Include="examples\Simple\LogBridge\LogBridgeDemo.dproj">
10+
<Dependencies/>
11+
</Projects>
12+
<Projects Include="examples\Simple\Tools\SaveAndGenerateTest\TestSaveAndGenerate.dproj">
13+
<Dependencies/>
14+
</Projects>
15+
<Projects Include="UnitTest\UnitTest.dproj">
16+
<Dependencies/>
17+
</Projects>
18+
<Projects Include="UnitTest\UnitTestGUI.dproj">
19+
<Dependencies/>
20+
</Projects>
21+
</ItemGroup>
22+
<ProjectExtensions>
23+
<Borland.Personality>Default.Personality.12</Borland.Personality>
24+
<Borland.ProjectType/>
25+
<BorlandProject>
26+
<Default.Personality/>
27+
</BorlandProject>
28+
</ProjectExtensions>
29+
<Target Name="MasterDetail">
30+
<MSBuild Projects="examples\Simple\ObjectSpace\MasterDetail\MasterDetail.dproj"/>
31+
</Target>
32+
<Target Name="MasterDetail:Clean">
33+
<MSBuild Projects="examples\Simple\ObjectSpace\MasterDetail\MasterDetail.dproj" Targets="Clean"/>
34+
</Target>
35+
<Target Name="MasterDetail:Make">
36+
<MSBuild Projects="examples\Simple\ObjectSpace\MasterDetail\MasterDetail.dproj" Targets="Make"/>
37+
</Target>
38+
<Target Name="LogBridgeDemo">
39+
<MSBuild Projects="examples\Simple\LogBridge\LogBridgeDemo.dproj"/>
40+
</Target>
41+
<Target Name="LogBridgeDemo:Clean">
42+
<MSBuild Projects="examples\Simple\LogBridge\LogBridgeDemo.dproj" Targets="Clean"/>
43+
</Target>
44+
<Target Name="LogBridgeDemo:Make">
45+
<MSBuild Projects="examples\Simple\LogBridge\LogBridgeDemo.dproj" Targets="Make"/>
46+
</Target>
47+
<Target Name="TestSaveAndGenerate">
48+
<MSBuild Projects="examples\Simple\Tools\SaveAndGenerateTest\TestSaveAndGenerate.dproj"/>
49+
</Target>
50+
<Target Name="TestSaveAndGenerate:Clean">
51+
<MSBuild Projects="examples\Simple\Tools\SaveAndGenerateTest\TestSaveAndGenerate.dproj" Targets="Clean"/>
52+
</Target>
53+
<Target Name="TestSaveAndGenerate:Make">
54+
<MSBuild Projects="examples\Simple\Tools\SaveAndGenerateTest\TestSaveAndGenerate.dproj" Targets="Make"/>
55+
</Target>
56+
<Target Name="UnitTest">
57+
<MSBuild Projects="UnitTest\UnitTest.dproj"/>
58+
</Target>
59+
<Target Name="UnitTest:Clean">
60+
<MSBuild Projects="UnitTest\UnitTest.dproj" Targets="Clean"/>
61+
</Target>
62+
<Target Name="UnitTest:Make">
63+
<MSBuild Projects="UnitTest\UnitTest.dproj" Targets="Make"/>
64+
</Target>
65+
<Target Name="UnitTestGUI">
66+
<MSBuild Projects="UnitTest\UnitTestGUI.dproj"/>
67+
</Target>
68+
<Target Name="UnitTestGUI:Clean">
69+
<MSBuild Projects="UnitTest\UnitTestGUI.dproj" Targets="Clean"/>
70+
</Target>
71+
<Target Name="UnitTestGUI:Make">
72+
<MSBuild Projects="UnitTest\UnitTestGUI.dproj" Targets="Make"/>
73+
</Target>
74+
<Target Name="Build">
75+
<CallTarget Targets="MasterDetail;LogBridgeDemo;TestSaveAndGenerate;UnitTest;UnitTestGUI"/>
76+
</Target>
77+
<Target Name="Clean">
78+
<CallTarget Targets="MasterDetail:Clean;LogBridgeDemo:Clean;TestSaveAndGenerate:Clean;UnitTest:Clean;UnitTestGUI:Clean"/>
79+
</Target>
80+
<Target Name="Make">
81+
<CallTarget Targets="MasterDetail:Make;LogBridgeDemo:Make;TestSaveAndGenerate:Make;UnitTest:Make;UnitTestGUI:Make"/>
82+
</Target>
83+
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
84+
</Project>

Doc/quickstart.md

Lines changed: 44 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -53,50 +53,45 @@ Then press Add and select your bpl-file
5353

5454
Compiling from source gives you the latest version, or lets you use Bold with unsupported Delphi versions.
5555

56-
Open the package file:
57-
```
58-
C:\BoldForDelphi\packages\<Delphi version>\dclBold.dpk
59-
```
56+
Open the package project for your Delphi version in the IDE:
6057

61-
Replace `<Delphi version>` with your version:
58+
| Delphi Version | Open this file |
59+
|----------------|----------------|
60+
| Delphi 11.3 Alexandria | `packages\Delphi11.3\dclBold.dproj` |
61+
| Delphi 12.1 CE Athens | `packages\Delphi12.1_CE\dclBold.dproj` |
62+
| Delphi 12.3 Athens | `packages\Delphi12.3\dclBold.dproj` |
63+
| Delphi 13 Athens | `packages\Delphi13\dclBold.dproj` |
6264

63-
| Delphi Version | Folder |
64-
|----------------|--------|
65-
| Delphi 11.3 | Delphi28 |
66-
| Delphi 12.1 | Delphi29.1 |
67-
| Delphi 12.3 | Delphi29.3 |
68-
| Delphi 13 | Delphi30 |
65+
Then:
6966

70-
**Using an unsupported Delphi version:**
67+
1. **File → Open Project** and select the `.dproj` from the table above
68+
2. **Project → Build** (or Shift+F9) to compile the package
69+
3. In the **Project Manager** panel, right-click the `.bpl` and choose **Install**
70+
4. Verify via menu **Component → Install Packages...** — you should see "Bold for Delphi" in the list
7171

72-
If your Delphi version is not listed above, you can create packages for it:
72+
The compiled BPL is output to `packages\Bin\`.
7373

74-
1. Copy the folder of the closest supported version (e.g., copy `Delphi30` for Delphi 14)
75-
2. Rename the folder to match the Delphi compiler version (e.g., `Delphi31`)
76-
3. Open Project options
77-
4. Update the Lib version in Description to 31.
78-
5. Project should now be dclBold.31.bpl
79-
6. When you verified all is working it would be nice if you make a pull request to the author to include the new package in repository
74+
You should now see Bold components in the Tool Palette. 🎉
8075

81-
The Bold source code uses standard Delphi/VCL features and typically compiles on newer versions with minimal changes.
76+
**Using an unsupported Delphi version:**
8277

83-
1. Build the package
84-
2. Right-click on the bpl-file in project panel and choose **Install**
85-
3. The bpl should now be active in `packages\Bin\`
86-
4. Verify via menu **Component → Install Packages...**
78+
If your Delphi version is not listed above:
8779

88-
You should now see Bold components in the Tool Palette. 🎉
80+
1. Copy the folder of the closest supported version (e.g., copy `Delphi13` for Delphi 14)
81+
2. Rename the folder to match your Delphi version (e.g., `Delphi14`)
82+
3. Open `dclBold.dproj` in the IDE
83+
4. Go to **Project → Options → Description** and update the Lib Suffix to match your compiler version
84+
5. Build and install as described above
85+
6. If it works, consider submitting a pull request to include the new package folder
8986

9087
---
9188

9289
## Your First Bold Application 🏗️
9390

94-
First option is to look at ready small app in
95-
`C:\BoldForDelphi\examples\Simple\ObjectSpace\MasterDetail\masterDetail.dpr`.
96-
97-
Just compile it.
91+
First option is to look at a ready-made small app:
92+
`examples\Simple\ObjectSpace\MasterDetail\MasterDetail.dproj`
9893

99-
Edit the ini-file according to your database. If you don't have a database server installed, try SQLite (easiest) or XML.
94+
**Important**: This example uses design-time Bold components, so you must install the Bold package first (Step 2 above). Then open and compile MasterDetail. It defaults to SQLite — no database server needed, just press F9.
10095

10196
Second option is to build app from scratch. More fun and more learning 😊
10297
We'll build a simple app with **Person** and **Building** objects, where persons can own buildings.
@@ -130,7 +125,21 @@ Connect them:
130125
### Step 4: Add Database Connection
131126

132127
1. Drop a `TFDConnection` (FireDAC) on the DataModule
133-
2. Configure it for your database:
128+
2. Configure it for your database. **SQLite is the easiest to start with** — no server needed:
129+
130+
```ini
131+
[Database]
132+
Persistence=FireDAC
133+
Type=SQLite
134+
135+
[SQLite]
136+
Database=BoldDemo.db
137+
```
138+
139+
The database file is created automatically on first run.
140+
141+
<details>
142+
<summary><strong>Other database configurations (SQL Server, PostgreSQL, Firebird, MariaDB, Oracle)</strong></summary>
134143

135144
**For SQL Server:**
136145
```ini
@@ -189,7 +198,7 @@ Connect them:
189198
VendorLib=C:\Program Files\MariaDB\MariaDB Connector C 64-bit\lib\libmariadb.dll
190199
```
191200

192-
Note: MariaDB requires the MariaDB Connector/C client library. Download it from https://mariadb.com/downloads/connectors/ (select Connector/C for Windows 64-bit). MySQL uses the same configuration - just point VendorLib to `libmysql.dll` instead.
201+
Note: MariaDB requires the MariaDB Connector/C client library. Download from https://mariadb.com/downloads/connectors/ (Connector/C, Windows 64-bit). For MySQL, point VendorLib to `libmysql.dll` instead.
193202

194203
**For Oracle:**
195204
```ini
@@ -204,19 +213,9 @@ Connect them:
204213
VendorLib=C:\oracle\instantclient_23_7\oci.dll
205214
```
206215

207-
Note: Oracle requires the Oracle Instant Client. Download from https://www.oracle.com/database/technologies/instant-client/downloads.html (Basic or Basic Light package). The `Database` parameter uses Easy Connect format: `//host:port/service_name`. Oracle treats empty strings as NULL, so Bold uses an EmptyStringMarker internally to preserve empty string values.
208-
209-
**For SQLite:**
210-
```ini
211-
[Database]
212-
Persistence=FireDAC
213-
Type=SQLite
214-
215-
[SQLite]
216-
Database=BoldDemo.db
217-
```
216+
Note: Oracle requires the [Oracle Instant Client](https://www.oracle.com/database/technologies/instant-client/downloads.html). The `Database` parameter uses Easy Connect format: `//host:port/service_name`.
218217

219-
SQLite is the easiest to get started with - no server installation needed! The database file is created automatically on first run.
218+
</details>
220219

221220
3. Drop a `TBoldDatabaseAdapterFireDAC` component
222221
4. Set `BoldDatabaseAdapterFireDAC1.Connection``FDConnection1`
@@ -390,7 +389,7 @@ self.firstName + ' ' + self.lastName -- Concatenation
390389

391390
## Next Steps 🚶
392391

393-
1. **Explore the Examples**: See `examples/Compound/Building/` for a complete sample
392+
1. **Explore the Examples**: See `examples/Compound/Building/` for a more complex sample (note: this is a legacy Delphi 7 project — use it as a code reference, not as a compilable project)
394393
2. **Read the Tutorials**: Check `Doc/Starting Bfd - Part 1, 2, 3.pdf`
395394
3. **Learn OCL**: See `Doc/ad970808_UML11_OCL.pdf` for the OCL specification
396395
4. **Try Derived Attributes**: Computed values that auto-update

0 commit comments

Comments
 (0)