To start with the first question, you can write (almost) any application in Delphi. Other version often implies a smaller library and possible limited use (as far as I know you can't sell comercial applications build with the free version, but maybe codegear changed this)
An addressbook is a nice and simple (database) application. And with database applications you have basically two choices:
- use the data aware controls
- do it yourself
Data aware controls are great if you want to build an application fast. If you have a life connection, you can show it (even at designtime). But In my opionion they are a bit limited.
The do it yourself option is harder. You should write an infrastructure yourself.
Some remarks on general application development
First you need to decide what you want to build. Take some paper and draw some screens. For example:
+-------------------------------------------------+
| menu |
+-------------------------------------------------+
| Toolbar |
+------------+------------------------------------+
| -Friends |Name Mail |
| >Hers |Alice [email protected] |
| His |Bob [email protected] |
| +Coworkers | |
| + Us | |
| +Them | |
+------------+------------------------------------+
| statusbar |
+-------------------------------------------------+
We have the following controls:
- An action list (not visible) which contains the actions independent of the menu/toolbars.
- A main menu, linked to the action list.
- A toolbar, linked to the action list.
- A treeview to organize the groups.
- A listview to show the contacts.
- A statusbar to show the application status.
With the action list, it is easy to use both a main menu, context menu's and toolbars.
The listview has several view styles. You need to set the ViewStyle property to vsReport to get the expected behaviour. Within the listview, each item has a caption, which is shown on the first column. The other columns are filled with information in a stringlist (subitems).
Then you need to decide on the actions:
- Add address
- Remove address
- Copy/Paste
- Move (drag & drop is nice but can be hard to program)
- Print
And there are lots of other questions (possibly for later) like:
- Do you want a single addressbook, or do you want multiple? In the later case you need a mechanism to connect to another database.
- Do you want to show one or multiple addresscards at once?
If this is too much, I advice to start small (single database, single card, no printing). You can expand later.