views:

414

answers:

8

I need to write an app that reads a config file with info on the menu bars it needs to create.

Normally, I'd just use java, but I need the application to have the least run-time dependencies possible, this includes not forcing the user to download anything, even JRE, let alone something like NET Framework.

So I need something that can compile to an EXE (windows only for now), and that will allow me to CODE the GUI, so I can dynamically create it from my config.

BTW: something like C++ is a bit too low level, all I need is to create menus, and display HTMLs in a panel.

+3  A: 

If Java's too high-level and C++ too low-level, there ins't much in-between. Maybe Delphi?

Alex Martelli
The problem with java is not that it's too high level, the problem is it requires JRE to be installed, and my client doesn't want any dependencies.
Hugo
I'd give Delphi a try, too.
ammoQ
A bit heavyweight for displaying a few menus and HTML, isn't it?
Tiberiu Ana
What's lighter -- if C++ (and therefore presumably C) are deemed "too low level"?
Alex Martelli
Turbo Explorer (Free Delphi) or LazarusBut I would go with Delphi in this case because it has some widget to instantiate MSIE for your html.
Marco van de Voort
+2  A: 

Delphi is best chose for you. Because Delphi compile source code into native x86.

MicTech
+3  A: 

I wouldn't totally write off using Java and/or Python for a few reasons.

1) py2exe can compile your Python code to an exe.

2) GCJ can compile your Java code to an exe.

Taylor Leese
+1 for GCJ, if the only problem is the JRE distribution, then maybe the answer is cutting it out of the loop, not switching to an entirely different stack.
Tiberiu Ana
PyInstaller can be an even better way than py2exe (particularly if you use PyQt/Qt, for which it offers special support); but (like, I believe, GCJ) it's still going to make bigger EXEs than Delphi.
Alex Martelli
I've tried GCJ before. Regrettably, it still doesn't compile swing applications.
Hugo
+1  A: 

Have you considered D ? It has a syntax that is like a mixture of Java, C++ and Python with the ability to make native windows apps. The tutorials on dprogramming.com are great to get up and going with the language. For quick GUIs you'd be interested in The D Forms Library and the Entice Designer.

Here are some short video tutorials to get up and running with Entice.

Alternatively, have you tried Qt & Qt Creator? It takes a lot of the hair pulling out of C++ Programming and it's also cross-platform.

John T
I'm giving both your suggestions a try, and as I go along, I'll decide which one I'll keep. :)
Hugo
Is there a free version that allows to link everything into one QT binary? Otherwise QT is a ... runtime.
Marco van de Voort
http://doc.trolltech.com/4.1/deployment-windows.html
John T
+6  A: 

How about wxPython together with py2exe? There is a nice tutorial on how to do it here.

kotlinski
Agreed, I suggested that or GCJ (for Java).
Taylor Leese
+2  A: 

Unless you have serious reasons to avoid interpreted languages, I would suggest you better look into ways of packaging or compiling interpreted scripts because doing this will likely reduce your learning and development time.

I would write a simple GUI in Tcl/Tk, and then package it as a Starpack.

ActiveState provides a distribution (ActiveTCL) and a decent editor (Komodo Edit), and it is fairly easy to get simple GUIs going with Tk. Check out TkDocs for some hand holding.

Once you're done, you can package your code, a Tcl runtime, a database, and a virtual filesystem, all into a single executable that you can easily distribute.

Tiberiu Ana
A: 

You say:

all I need is to create menus, and display HTMLs in a panel.

A lot like a Web browser, then. If it's going to run on Windows, then the user has IE. Why not use IE to do all the work for you?

You can make something a lot like an .exe with IE, called an .hta:

http://msdn.microsoft.com/en-us/library/ms536496(VS.85).aspx

Daniel Earwicker
The menus must be [not realy by my own choice] menuBars.Also, handling the menu generation in HTA seems a little far too compliated, since i need to read and parse the file as well.. I haven't looked in into TOOOO much detail, but that's my first-hand impresion
Hugo
Can you decide the format of the "config file" for the menus? How about making the format be HTML?
Daniel Earwicker
Nope, not up to me.Even though I could parse it, an create an HTML with some other tool, the client insist on a menubar (very much a windows one)
Hugo
+1  A: 

Earwicker is right. You can use HTA: http://www.interclasse.com/scripts/htanotepad.php

But if you know C++, then creating this type of an application is actually very easy with Visual C++. Use MFC, and statically link everything. You can draw the menu in the resource editor, and attach events to the menu items. I wouldn't use HTML if I were you. Just use regular Windows controls. But if you're really set on using HTML, you can embed a Browser control in the formview.

zumalifeguard
I need to create the menus dynamicaly from the file I read, so C++ would mean i'd have to read the file, parse it, and hand code the menu-generation, I can't drawn it, since it's only known at run-time.BTW: I strictly need to use MenuBars, can't use some other type of menus.
Hugo