 |
BorlandTalk.com Borland discussion newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Alexander Adam Guest
|
Posted: Tue Aug 24, 2004 8:56 pm Post subject: Some thoughts required... |
|
|
hi,
How would you go if you'd have to build a modular application just like e.g.
Eclipse for Java in Delphi?
Means registering different Editors, different menus and all that crap,
should also be possible to write modules in C++, manage their versions etc..
any thoughts?
thanks,
Alex
|
|
| Back to top |
|
 |
Jarle Stabell Guest
|
Posted: Tue Aug 24, 2004 10:28 pm Post subject: Re: Some thoughts required... |
|
|
Alexander Adam wrote:
| Quote: | How would you go if you'd have to build a modular application just
like e.g. Eclipse for Java in Delphi?
Means registering different Editors, different menus and all that
crap, should also be possible to write modules in C++, manage their
versions etc.. any thoughts?
|
You have to do everything with interfaces (or pure abstract classes).
Use Widestrings everywhere, stdcall calling convention etc.
Study addin-architectures in general, Borland's ToolsAPI, Eclipse and
others.
Be prepared for lots of work. Eclipse has world class OO gurus working
on it as their day jobs.
Since Delphi's UI components are not based on interfaces, you have to
wrap/encapsulate everything you want addins to access, or write your own
UI components and make them interface based.
Cheers,
Jarle
|
|
| Back to top |
|
 |
Andrew Guest
|
Posted: Tue Aug 24, 2004 10:49 pm Post subject: Re: Some thoughts required... |
|
|
Alexander Adam wrote:
| Quote: | hi,
How would you go if you'd have to build a modular application just
like e.g. Eclipse for Java in Delphi?
Means registering different Editors, different menus and all that
crap, should also be possible to write modules in C++, manage their
versions etc.. any thoughts?
thanks,
Alex
|
Delphi BPLs are a VERY powerful structure for building plug-in type
applications. However, the Borland docs don't spend much time on this
use. Buy The Delphi Magazine back issue CD for some great examples. I
built a report generator where each report was a bpl. It would load in
the logic for formatting the report AFTER it parsed the raw data file
to see what kind of report it was.
As for C++, I believe C++ Builder supports BPLs as well.
Cheers,
Andrew
|
|
| Back to top |
|
 |
Alexander Adam Guest
|
Posted: Wed Aug 25, 2004 12:35 am Post subject: Re: Some thoughts required... |
|
|
hi,
| Quote: | Delphi BPLs are a VERY powerful structure for building plug-in type
applications. However, the Borland docs don't spend much time on this
use. Buy The Delphi Magazine back issue CD for some great examples. I
built a report generator where each report was a bpl. It would load in
the logic for formatting the report AFTER it parsed the raw data file
to see what kind of report it was.
|
I know, we did that already but ran into too much problems. We want a more
"standartized" way of doing things here...
thanks,
Alex
|
|
| Back to top |
|
 |
Alexander Adam Guest
|
Posted: Wed Aug 25, 2004 12:36 am Post subject: Re: Some thoughts required... |
|
|
hi,
| Quote: | Be prepared for lots of work. Eclipse has world class OO gurus working
on it as their day jobs.
Since Delphi's UI components are not based on interfaces, you have to
wrap/encapsulate everything you want addins to access, or write your own
UI components and make them interface based.
|
So how would I go from there? I want e.g. my modules to have their own menu
that becomes the main menu when the editor gets active, access parents
events and properties etc.. Oh, and are there any samples of custom
components supporting interfaces?
thanks,
alex
|
|
| Back to top |
|
 |
Dennis Landi Guest
|
Posted: Wed Aug 25, 2004 1:13 am Post subject: Re: Some thoughts required... |
|
|
"Alexander Adam" <nospam (AT) please (DOT) com> wrote in message
"My stomach's growling"
"I'm in the mood for popcorn"
-d
|
|
| Back to top |
|
 |
Alexander Adam Guest
|
Posted: Wed Aug 25, 2004 1:32 am Post subject: Re: Some thoughts required... |
|
|
| Quote: | any thoughts?
"My stomach's growling"
"I'm in the mood for popcorn"
|
erm... I thought on some specific thoughts on the subject but nevermind,
popcorn is a good idea <g>
|
|
| Back to top |
|
 |
Dennis Landi Guest
|
Posted: Wed Aug 25, 2004 2:07 am Post subject: Re: Some thoughts required... |
|
|
"Alexander Adam" <nospam (AT) please (DOT) com> wrote
| Quote: | any thoughts?
"My stomach's growling"
"I'm in the mood for popcorn"
erm... I thought on some specific thoughts on the subject but nevermind,
popcorn is a good idea
|
now, you know why I haven't started my own blog....
|
|
| Back to top |
|
 |
Ryan Mills Guest
|
Posted: Wed Aug 25, 2004 12:50 pm Post subject: Re: Some thoughts required... |
|
|
| Quote: | So how would I go from there? I want e.g. my modules to have their own menu
that becomes the main menu when the editor gets active, access parents
events and properties etc.. Oh, and are there any samples of custom
components supporting interfaces?
|
I wrote a component that allowed me to generate a "menu" in my plugin. When my
plugin is loaded I ask for its "menu" structure and then based on what it hands back
the menu gets generated from that. When the plugin is unloaded the same thing happens
but instead of adding I remove all menu items tied to that plugin.
All of my plugins are able to be dynamically loaded and unloaded, they support loading of
menus and context menus, UI pages and other stuff. The whole thing workes through a
set of interfaces and runtime BPLs.
I've taken a long time, and a lot of work, to get my plugin system to this point. It's been
an exercise in teaching myself just that. I would suggest that you either look at an already
existing plugin system (UIL, JVCL, TMS, etc) or expect to spend some time learning the
ropes on how to create one from scratch.
HTH,
Ryan.
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|