[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 206
  • Last Modified:

Making an IDE

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.

Thanks.
0
BigRat
Asked:
BigRat
4 Solutions
 
Wim ten BrinkCommented:
http://www.unicode.org/ for the Unicode homepage.
http://www.delphi-gems.com/ 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?
0
 
DragonSlayerCommented:
http://synedit.sourceforge.net/ 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: http://tnt.ccci.org/delphi_unicode_controls/

You might want to also want to have a look at Toolbar2000 http://jrsoftware.org/tb2k.php 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 http://www.rmklever.com/delphitbx.html
0
 
Russell LibbySoftware Engineer, Advisory Commented:

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.

Regards,
Russell



0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Wayne BarronCommented:
This is something that I made up a few years ago
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=621&lngWId=7

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

Carrzkiss

rlliby;
  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.

Carrzkiss
0
 
Russell LibbySoftware Engineer, Advisory Commented:

Wayne,

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 ;-)

Regards,
Russell
0
 
Wayne BarronCommented:
:-( Shot down again.... ;-)

I am learning how to use this program:
Game Development:
http://www.blitzbasic.com/Products/_index_.php

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 :-)

Carrzkiss
0
 
BigRatAuthor Commented:
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!
0
 
Wayne BarronCommented:
Hey BigRat.

  Good luck.
  In making the IDE.

  Take Care
  Carrzkiss
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now