On Tue, 25 Jul 2006, Mattias Gaertner wrote:
On Tue, 25 Jul 2006 10:59:54 +0700
Bisma Jayadi <[EMAIL PROTECTED]> wrote:
Hi all...
Currently I'm planning to develop an application for database modeling, in
my
spare time. I plan it'd be similar to FabForce's DBDesigner 4
(http://www.fabforce.net/dbdesigner), though it has nothing to do with the
FabForce's. Yes, I'll reinvent the wheel, but I have good reasons for it.
Current development status is I've finish the class for table model which
is
derived from TCustomListBox with custom paint method. And now I'm starting
to
develop the relation model. The first idea came to my mind was create a
new
class contains 3 TBevel(s) which are combined to build a relation model.
After
few hours of coding, I found this idea is too complicated (I've to
synchronize 3
objects) so I plan to solve it another way.
Here I need some suggestions... which is the best component I should
derive from
to make the relation model? I've been thinking about TPaintBox but I think
it
too big and too complex for just a relation model component. I want it
able to
paint fast and requires less memory.
How fast and how much less memory?
If your tables only contains a few hundred entries and there are no more
than a few dozens tables, then the listboxes are ok.
Otherwise, you can use instead of TCustomListBox a TCustomControl. This has
less overhead, but you have to implement the items and scrolling yourself.
(TCustomControl has a scrollbar, but you have to paint the offset).
The connections should be painted.
When your relation control works nice, we could use it for an UML modeller
for the IDE.
I wouldn't recommend this approach. I tried various database modellers,
and the only workable one for large databases was one which painted the
objects all from scratch.
Although I would be among the first to use an UML and Database modeller in
Lazarus :-)
Michael.
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives