Making an IDE

Posted on 2004-11-23
Last Modified: 2010-04-05
This question is about design philosophy.

I'm porting RatScript from an old Pascal/C system to Delphi 5 (and later I'd like it to compile with Kylix). The script interpreter is a command line program and so far that's going quite well in spite of the difficult lexical differences.

Now I'd like to make an IDE for RatScript like the Delphi IDE.

Now the Delphi IDE uses a tabbed pane instead of MDI for display. There's an MDI example which comes with Delphi 5, but no Tabbed-Pane system. Do you know where I can find such an example?

I though of using TMemo to hold the RatScript text, but in Delphi 5 this thing is not Unicode enabled. Does anybody know where I might find a free Unicode TMemo or can I use something else?

When a Delphi unit compiles a left hand pane comes up with the lines for breakpoints. Is there any unit that'll do that?

I'd also like to do syntax high-lighting on script display and use mouse overs during debugging to display variable's values. How does one do such tings to TMemo (or whatever).

Four questions 50 points each, plus 50 bonus for any futher thoughts directions.

Question by:BigRat
    LVL 17

    Assisted Solution

    by:Wim ten Brink for the Unicode homepage. has a section for Unicode-related issues.

    Delphi doesn't support Unicode that well, though. There might be a Unicode component somewhere but probably not with all the functionality that you are looking for. I just hope Delphi 2005 will have better Unicode support for Win32 applications, though. But I doubt it.

    The tabbed pane is a PageControl, btw. It's on the Win32 tabpage, second one from the left, I guess.
    The left hand page can be simulated with a simple TPanel on the left side. The syntax highlightning is done with a RichEdit control (on the same tabpage as the PageControl) and if you keep the linehight fixed for this RichEdit field, you can easily calculate at which points you must draw the breakpoints in the panel on the left.

    There must be other IDE applications available though, that are written in Delphi. Maybe a Google search will be helpful?
    LVL 14

    Assisted Solution

    by:DragonSlayer for your coding component, it comes with syntax highlighting. The unicode version however, is still in development (but can already be checked out from the CVS).

    And here's a list of Unicode controls to replace the Delphi standard components:

    You might want to also want to have a look at Toolbar2000 because it supports theming support and also some toolbar thingy for the MDI child. Forgot the site for the MDI thingy, but check out this site, nevertheless
    LVL 26

    Assisted Solution

    by:Russell Libby

    Regarding the editing side of things:

    I just finished writing an IDE (in Delphi) for GameBoy Advanced development and I can give a **STRONG** recommendation for the SynEdit components. Please see the link above that DragonSlayer provided.

    It is still in development, true; but it is also very stable and extremely easy to program against. For example, getting the "word" at the current cursor location is trivial. As is using bookmarks, and other gutter handling techniques. There are also close to 3 dozen language highlighters provided, as well as autocomplete and VERY COOL print preview / printing components...

    In short, if you plan on doing any syntax highlighting/editing (eg writing your own IDE), and want to do it for free, then this set of components is the ONLY way to go.


    LVL 30

    Accepted Solution

    This is something that I made up a few years ago

    It demostrates how to create the "SynEdit" At runtime.
    With Completion Proposal, done on PageControl.TabSheets. Created at RunTime.


      Hello friends.
    you say that you designed something in Delphi for "GameBoy" ?
    I was told back a year or so ago, that Delphi could not be used to design
    Stuff for Video Games, "Outside of the ones that can be made for computer"?
    Nice to know that I was mis-informed.

    LVL 26

    Expert Comment

    by:Russell Libby


    Unfortunately Delphi was only used for the IDE creation.... the GBA coding that I do is done using the gnu C compiler (for ARM/THUMB). But using Delphi, I was able to create a very nice development environment that operates seamlessly with all my tools/compiler/emulator etc.

    So as far as I know, Delphi can't generate code for the ARM processor .... would be nice though ;-)

    LVL 30

    Expert Comment

    by:Wayne Barron
    :-( Shot down again.... ;-)

    I am learning how to use this program:
    Game Development:

    It is very nice. Just have not had the time to really dive into it.
    Hopefully next Summer I will be able to start learning it.
    But right now, I have the "DFS Site" to get going, And then
    I have another Site project that needs to be built.
    But luckily, The Site can be copied over from the "DFS" into the
    new project, as they will both use the same templates that I have designed.

    Need more hands :-)

    LVL 27

    Author Comment

    All excellent responses, thanks lads.

    So I've got something to start with and will get back to you with new questions was times goes by.

    Thanks again!
    LVL 30

    Expert Comment

    by:Wayne Barron
    Hey BigRat.

      Good luck.
      In making the IDE.

      Take Care

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    What Should I Do With This Threat Intelligence?

    Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

    Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
    Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
    Hi everyone! This is Experts Exchange customer support.  This quick video will show you how to change your primary email address.  If you have any questions, then please Write a Comment below!
    Sending a Secure fax is easy with eFax Corporate ( First, Just open a new email message.  In the To field, type your recipient's fax number You can even send a secure international fax — just include t…

    737 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    20 Experts available now in Live!

    Get 1:1 Help Now