Far too often RAD designs leads to SAMM (Slow Application Modification/Maintenance)

Here's some tips to avoid this.

1. Don't abuse the Property Browser
The property browser is useful but avoid over using it.  Sometimes its
better to set properties of controls in your form construction. 
If you can't set a property at run time, add a comment in form load
when you do change a property from the default value.
This makes changes visible through version differencing programs.

This is especially true for string properties.  Never use the property
browser to set captions, etc.  It's better to create a LoadText() function
on all your forms and initialize captions there.  That way you can 
search and replace text etc.  This is very useful for tooltip text because
if management wants you to change the name of a feature you can do it
easily!

2. Designing Forms
When placing controls on forms, set the caption to the name of the control
not the text that the user will see.  i.e. btnOK instead of OK for a 
button that way at maintenance it's easy to figure out which control 
is which.  Your LoadText() method will take care of putting the proper
caption on the control at run time.

Never hard code form dimensions.  When the form starts up store the
dimensions of the form and key control locations and use those calculations
to position controls when the form is resized.  Calculate minimum
form size in terms of multiples of button widths and heights.
Calculate the gap between two buttons when the form is loaded and use
that gap distance to position all the buttons and controls with equal
spacing.  Don't forget to make all the button height and widths the same
-- do it at run time instead of in the design window.  With Delphi, 
resizing dialogs is a hundred times easier than VB if you make good use
of TPanel's

3. Managing string literals
Create a do-nothing function or macro for classifying string literals:
string T_DB(string sz) { return sz; }
Write a similar one for the following types of literal text 
T_ERR Error Messages the user will see
T_UI  User interface text that the user will see - may need internationalization
T_LOG Log file messages most user's won't see
T_DB  Database queries and table/field names
T_REG Registry key and section names
T_FN  File Names
T_    All other internal strings the user won't see - format strings, etc

Then place all literal strings within the function call or add the
function name to a comment on the same line
szQuery = T_DB("SELECT * from system_messages")
szMsg = "You have entered the wrong value" ' T_ERR()

This makes it easy to grep/find all SQL strings, user error messages, etc.

4. Don't forget about classes
The most useful classes are mediators which take a reference to one or
more controls in their constructor and then provide methods to make the
controls interact well.  The best example is a text, add button, remove
button and a listbox. This is so common for constructing lists of stuff
that a mediator class can be used to reuse this pattern of controls
on multiple forms and allow the arrangement of controls to vary. 
The class provides methods you can call like: AddClick, RemoveClick, 
TextChanged, ListSelectionChanged.  In your form you instantiate the
mediator class and attach the controls to it and pass these events
on to the class and it updates all the controls appropriately.

5. Create and make use of Components
Ideally, the above example would be combined into an ActiveX or other
single control for reuse.  Take the time to learn to write your own
components.  Once you know how, it only takes a little longer to write
a control than it does to create a mediator class.  And once the control
is written you can plop it onto other forms for instant reuse.
Find out if Delphi uses ActiveX controls easily.  If it does, you 
can re-use the DropCalendar, DropTime and OrdListBox .OCX controls
that exist already for System 4 Administrator.

6. Make use of hidden controls
Place a hidden control on a form and make use of it when there's no
other way of doing something.  For example, you can only calculate the
height and width of a string of text in a given font using a PictureBox
in VB.  In order to calculate how tall to make the Tabs in System 4 Administrator
I use a hidden PictureBox and determine the height of the letter 'M'
and use 1.5 times that as the tab height.

    Source: geocities.com/gurucoder/Tools

               ( geocities.com/gurucoder)