Fog Creek Software
Discussion Board




Delphi for ShrinkWrap Desktop Applications

Hey guys,

I'm looking at writing some simple shareware applications.  My background as a developer is Java on Unix so windows development environments are a little foreign to me.

Lately I've been evaluating Visual Studio.NET as a development option, however the low penetration of the framework makes me fear it may be a deterrant for potential users.  A company I've worked for before built some delphi database apps and Installation was a breeze.  Copy the exe into place and you're away,  no DLL hell or pre-requisites.  Consequently I've decided to try out Delphi before commiting to .NET and C#.

I know that borland isn't doing so well, and they've committed to .NET with octane, etc. etc.  However I'm still keen to give it a go.

I've read comments from commited delphi users here and I was hoping for some pointers.  Can anyone recommend books or websites for using delphi to develop desktop apps?  There are books building webapps and database driven desktop apps.  But I'm after tips on building shareware.

Things like,  storing configuration information.  How to store users' data on disk.  Considerations for functional GUIs.  Etc. Etc.

Cheers
Koz

Koz
Wednesday, January 28, 2004

I'd like to suggest Marco Cantu's "Mastering Delphi 7".  It's more information than you probably need right now, but it's handy to have on your desk when developing in Delphi.  The author also has several free ebooks available on his website at http://www.marcocantu.com

Kevin
Wednesday, January 28, 2004

I'll give Marco Cantu's book a second recommendation. It's pure gold, and it's all you'll need.

I have written shrinkwrap applications in Delphi, and wouldn't hesitate a second to use Delphi again.

For eye candy, check out DIB Controls by Peter Morris. I have not used these myself, but they look awesome:

http://www.droopyeyes.com/default.asp?mode=ShowProduct&ID=3

Big B
Wednesday, January 28, 2004

I feel your pain about the framework penetration thing. It's going to be YEARS before we consider porting CityDesk.

In the meantime, what about C++ with MFC? This will probably be supported for a looooong time and of course you can make self contained EXEs. Yeah, C++ isn't as productive as the .Net languages (especially at coding up fancy dialog boxes) but it's not >that< bad.

Joel Spolsky (Fog Creek Software)
Wednesday, January 28, 2004

There's a ton of stuff everywhere on Delphi.

My dog-eared companion is "Delphi In a Nutshell" by Ray Lischner. Specifically Chapter 5 Language Reference. As mentioned, anything you can get by Cantu is a must have.

I read a number of groups on newsgroups.borland.com there is an answer to any question you may have there. You can pick up a lot of info just lurking.

When you order your copy of D7 - be *sure* the manuals come with it.

Sorry I didn't have anyting specific for you. GL, hope you enjoy.

Perpetual Newbie II
Wednesday, January 28, 2004

Delphi is a lot more productive than Visual C++ and MFC.

MX
Wednesday, January 28, 2004

"Delphi is a lot more productive than ... "

And there's the bait, ... right on time :)

Perpetual Newbie II
Wednesday, January 28, 2004

<Generalisation>
The problem you face is that every Delphi user is going to tell you that its the best language in the world, and every non-Delphi user is going to tell you that Borland is a sinking ship and you should be doing it some other language :-)
</Generalisation>

But seriously... yes Delphi is a breeze. Marco Cantu's book is the only Delphi book I have ever needed to reference. The Delphi help file and google fills in the gaps.

A warning: I've seen a few shrinkwrap pieces of software written in Delphi that still looks pretty ugly - even though development is easy drag-and-drop there is always a lot of odds and ends to implement (eg tab presses, focus changes, aligning objects on the form).

Also if you need a database work that out before you commit to Delphi. The BDE is pretty much dead, but we have been using Interbase Objects components for a while to connect to Interbase/Firebird and all is ok. However you may have some other requirement about the DB you want to connect to.

PDF
Wednesday, January 28, 2004

Delphi is something you should be able to pick up yourself without needing a book. I shit you not, the delphi framework is the most intuitive thing you'll ever work with, including the .NET CLR.

Yeah, some people turn up their noses because it's "only pascal", but while it might not have the same geek factor of other languages, it's a very productive tool. That's all that matters to me.

Pity I don't get to use it anymore. :(

Sum Dum Gai
Wednesday, January 28, 2004

>> A company I've worked for before built some delphi database apps and Installation was a breeze.  Copy the exe into place and you're away,  no DLL hell or pre-requisites.  Consequently I've decided to try out Delphi before commiting to .NET and C#

Not even a thought for good ol' VB? :-)

Besides the fact that so-called DLL Hell only occurs if you use commonly used ActiveX controls (no issue with standard DLL's or personal OCX's), and all version of Windows since 98SE at least have the VB runtime... if you don't care about increasing the size of the EXE needlessly for most users, you can do look Delphi, and stick all your dependencies into the EXE using tools like PEBundle or EXE Bundle.

And for the non-interface parts that may suffer from low performance, just compile those parts in a DLL using PowerBasic. Best of both worlds :-)

FredF
Wednesday, January 28, 2004

Thanks for the tips guys.  I'll pick up Marco Cantu's book tommorow, it's a bit pricey but should keep me busy for a while.

Joel,  I did consider C++ + MFC.  I've used c++ in the past for server work on UNIX,  MS C++ seems to be lacking all the features that made me love it.  Fancy Templating (al la Alexandrescu's Loki) & the STL seem to be impossible without using another compiler.  Still, it's always an option for optimising inner-loops.  I understand that's what citydesk does.

FredF, If delphi doesn't work for me then I'll be looking at VB + VC++.  It's just that VB seems pretty foreign to me,  It's probably just my UNIX background being subconsciously condescending.  Is there a 'VB Bible' like Cantu's book?

Ideally, microsoft will start bundling the .net framework with one of their apps and I'll be able to use Windows forms and C#,  but until then.  I'll give your suggestions a try.

Koz
Wednesday, January 28, 2004

>> It's just that VB seems pretty foreign to me,  It's probably just my UNIX background being subconsciously condescending

I know the feeling, but it's those times where you should really look at the facts. Nothing beats VB when it comes to building an interface, and you have PowerBasic to build DLL's for number crunching.

If you are writing a Windows client application, ie. it's not a server application that needs to be portable to eg. *nix, and it's not a low-level applet like a device drive... think hard before choosing a hard-to-use and GPF-prone language like VC++, especially since pretty much the only drawback of VB is its run-time (besides the fact that most computers already have it, what's 1meg in the days of the CD and the Internet, especially when it's balanced out by much higher productivity and less bugs?)

>> Is there a 'VB Bible' like Cantu's book?

There are tons of books on VB, and since VB6 came out years ago, you'll get bargain prices. You could check out the archives in the following forums for hints on good books:

http://forums.devshed.com/forumdisplay.php?forumid=52
http://www.codeguru.com/forum/forumdisplay.php?forumid=4
http://groups.yahoo.com/group/vbhelp/messages/
http://peach.ease.lsoft.com/scripts/wa.exe?A0=visbas-l

FredF
Wednesday, January 28, 2004

>> Nothing beats VB when it comes to building an interface

I've used both Delphi & VB, and frankly I prefered Delphi for the interface. The main reason for that is that Delphi lets you set an Align property that basically resizes the controls automatically when you resize a window. Out of the box, it seems to me that Delphi has a more complete set of components. I know I'm a total newbie with VB, so maybe I'm missing something. I'd like to hear your thoughts on why VB builds better interface.

Just Like Frank
Wednesday, January 28, 2004

Align is the most beautiful thing in the world!

I've used so many other control layout toolkits for some any other languages, from sizers, to the motif style, to java's layout managers etc.

Nothing nothing nothing comes close to the simplicity and right-first-time-ness of Delphi's Align!

i like i
Wednesday, January 28, 2004

<BIAS>
If you use Delphi your luck will improve, the sun will shine all day and it will rain on your roses all night, babes (or your preferred equivalent) will fall at your feet, you will become a billionaire and die at 120 with a single wrinkle on your forehead and two grey hairs.

If you use VB you will catch a horrible disease and perpetuate world hunger. All of your rabbits will die and the bowels of your pet dog will become a weapon of mass destruction. Using C++ isn't so bad, but you will still be responsible for world poverty.
</BIAS>

On the other hand, most of the major products in this area wouldn't be successful if they didn't make the job reasonably simple.

Ian Sanders
Wednesday, January 28, 2004

"A warning: I've seen a few shrinkwrap pieces of software written in Delphi that still looks pretty ugly - even though development is easy drag-and-drop there is always a lot of odds and ends to implement (eg tab presses, focus changes, aligning objects on the form)."

Yes but that's nothing to do with Delphi, it's to do with the programmer using it. You can say the same about Visual Basic and there are a lot of ugly VB apps out there.

John Topley (www.johntopley.com)
Wednesday, January 28, 2004

I concur on not using the BDE if you need database support. Get DBISAM instead. Stay away from the included Installshield Express too. Use Inno Setup just like anyone else.

Cantu's book is often recommeded. Personally, I liked the Delphi 5 Developers Guide too. It's not outdated, because Delphi 5 is not that different from D7. Yes, that is a sad thing.

And as anything you ever wanted to know has already been asked, you can search Borland and other Delphi related newgroups here:
http://www.tamaracka.com/search.htm

It's better than Google, because it filters out non Delphi newsgroups and includeds several Delphi related newsgroups that are not available in Google groups.

Oh and one more thing: Stay away from Delphi 8. It is for .NET only comes with all the .NET advantages and more importantly the disadvantages.

Jan Derk
Wednesday, January 28, 2004

>> I know I'm a total newbie with VB, so maybe I'm missing something. I'd like to hear your thoughts on why VB builds better interface

Sorry, never really used Delphi, but it's probably a good solution too. I was thinking of VB vs. C, as the original poster comes with from the *nix world :-)

FredF
Wednesday, January 28, 2004

>> "MS C++ seems to be lacking all the features that made me love it.  Fancy Templating (al la Alexandrescu's Loki) & the STL seem to be impossible without using another compiler."

With VC++ 7 (a.k.a. Visual Studio .NET) the compiler has become much more standards-compliant.  For example, the Boost libraries now compile easily.

Oren
Wednesday, January 28, 2004

VB:  fast development

C/C++:  slow development, fast execution, easy access to Windows API

Delphi:  fast development, fast execution, easy access to Windows API`

MX
Wednesday, January 28, 2004

Man, you are looking to kill yourself. Not only do you want to change platform but language as well?

Why don't you choose a programming language that you already know and just learn the platform then you can switch laguages later? For example if you already know C, write some C apps for Windows until you are happy with the way it all fits together. Later, when you are at least some way along your platform learning curve, switch to some other laguage and learn that.

Why make things hard for yourself?
Wednesday, January 28, 2004

"Lately I've been evaluating Visual Studio.NET as a development option, however the low penetration of the framework makes me fear it may be a deterrant for potential users."

By the time you finish coding, testing, and debugging your shrinkwrap application, .NET will be EVERYWHERE.

Of course, by the time you're done, Linux may be EVERYWHERE.  :-P

T.J.
Wednesday, January 28, 2004

For creating desktop applications, Delphi wins hands down.
Here are some of the benefits:
* fast compiler
* full OO language
* RAD Enviroment
* Great component framework (VCL), comes w/source code
* huge 3rd party component market,
* great developer community support
* applications can be compiled to a single exe (NO runtime needed)
* Ability to interface with other languages, via dll or COM
* Great COM support

All this done in a single language and development enviroment (no need to hack together an application with front-end written in VB and back-end with VC++).

Comming from a Java background, you should have no trouble getting up to speed with Delphi.  You'll start to notice many similarties in their respective object models.

Here's a link to a Beginner's Guide to Delphi Programming:
http://delphi.about.com/library/weekly/aa020202a.htm

Smitty
Wednesday, January 28, 2004

"Yeah, C++ isn't as productive as the .Net languages (especially at coding up fancy dialog boxes) but it's not >that< bad. "

C++ isn't as productive, but Delphi sure is and more (especially at creating fancy dialog boxes).  Why would you want to take a step backwards?

Smitty
Wednesday, January 28, 2004

One reason to use Delphi for a Win32 app is that the transition to .Net will probably be a lot easier.  C++/MFC pretty much won't get you there at all. 

Here's an article I wrote on the idea:

http://www.lemanix.com/lemanix/lemanixisapi.dll/Entry?ID=1167

Nick
Wednesday, January 28, 2004

Having worked with VB for over 10 years (v1-6) and with Delphi for the last 2, I can say that without a doubt, Delphi blows VB out of the water in every respect.

Tons of third party tools/components, with source code often available, that are usually much cheaper than the ActiveX controls for VB.  Oh Yeah, you can still use ActiveX controls with Delphi if you want/need to.

Use Delphi.  Not only is it a better development platform, it will make you a better programmer.

KP
Wednesday, January 28, 2004

Oh, and for an impression what can be done in the UI realm with Delphi (and some third party components in this case) look at http://www.myf.com.au/

Ton Soontiëns
Wednesday, January 28, 2004

God kills a kitten every time you use VB.

Sean Winstead
Wednesday, January 28, 2004

For a very impressive commercial application written using Delphi, take a look at:

http://www.flstudio.com

Screenshot:

http://www.e-officedirect.com/FLStudio/extimages/FLStudioScreenshot1.jpg

Jarle Stabell
Wednesday, January 28, 2004

Definitely read the Delphi newsgroups at news.borland.com.

When you have a specific questions, search groups.google in the advanced section where you can search just the Delphi newsgroups.

There are 2 Delphi print magazines: Delphi Informant and The Delphi Magazine.

Marco Cantu's Mastering Delphi is great.

There are many open source Delphi projects - search SourceForge.

And when in doubt, ask on the Borland Delphi newsgroups - that's where I really learned Delphi.

Richard Grossman
Wednesday, January 28, 2004

Koz,

Just as an example of a Delphi program, you can download our DtpDocuments demo. It comes with complete source for the main program, and will give you an idea of the architecture of an application in Delphi.

The demo is an editor just a bit like MS Powerpoint, you can play around with it :) It's not what I consider a very complicated program, but contains mostly all the things that beginning programmers can use as example.
http://www.simdesign.nl/dtpdocuments.html

Kind regards,

Nils Haeck

Nils
Thursday, January 29, 2004

It is very simple....

use delphi

With delphi you only need 1 exe file, with VB you need about 100 other files.

and then it is 1000 times faster...

Brian Gustavsen
Thursday, January 29, 2004

If you are making any type of database app, a delphi front-end will be magnitudes easier to create than a VB 6 (not vb .NET) front end.  I've used both extensively and there is literally no comparison.

i am doing exactly what you are with a client - sending 1 exe over the internet to 400 users nationwide as a rich client hooking over the web to a database.  Extremely fast development, and users get an easy app for heavy data entry.

to interact with a db over the web, look at these tools: www.astatech.com, or www.remobjects.com (they both have .NET clients as well).  then i also use devexpress.com grid controls.

again, if this is a db app, you will have, at least, 90% less coding using the delphi framework than with VB.  Think visual inheritance,  great db tools.

john
Thursday, January 29, 2004

look at www.dexexpress.com and see the Delphi components demo, especially Quantum Grid, your doubts will be solved about Delphi. All Delphi components are written in native object pascal.

Baliga, Narasimha
Thursday, January 29, 2004

Delphi supplies all the power you need in order to develop both impressive components and powerful applications, and combined with the library jfControls you will be allowed to build multilanguage applications, with skins, grids, dynamical changes of appearance and amazing embedded forms. Just try to do the same with VB!!!

Ian Wells
Thursday, January 29, 2004

Great ! Keep on !!
For graphical nice-look charts, see our TeeChart for Delphi:

http://www.steema.com/products/teechart/gallery.html

http://www.steema.com/img_products/screenshots/teetree/TeeTreeLangs.png

Version 7 supports Delphi 8.Net and has lots of new features:

http://www.steema.com/support/teechart/7/beta_testing.html

regards
david berneda
www.teechart.com

David Berneda
Thursday, January 29, 2004

I code in Java, C++ (I created the solution for registering properties editors for non-VCL-derived data types in C++Builder that is on Borland’s C++Builder FAQ page), and Delphi’s version of Object Pascal on a regular basis, and, like Danny Thorpe, I too roll in the grass when I get the chance to code in Object Pascal.

Mark Van Ditta
Thursday, January 29, 2004

One of the best features of Delphi is the great user community. The TeamB guys that hangout in the newsgroups are so helpful and knowledgable..

There are many Delphi related web sites with free components. Gexperts, JVCL, Virtual TreeView, Now the TurboPower libs all free...

My personal favorite Delphi written applications are FeedDemon

http://www.bradsoft.com/feeddemon/screenshots/

and AvantBrowser

http://www.avantbrowser.com

NFX
Thursday, January 29, 2004

Delphi also gives you a road to the future - which VB and C++ really do not.

http://www.hower.org/kudzu/Articles/WhyDelphiDotNet/

Chad Z. Hower aka Kudzu
Thursday, January 29, 2004

Borland still has their Delphi 5 manuals online.  I highly recommend Marco's book as well (I have every edition) but for a quick free look, goto...

http://info.borland.com/techpubs/delphi/delphi5/index.html

There are 2 manuals.  The Developers Guide and the Language Reference.

DaveH

Dave Hackett
Friday, January 30, 2004

Delphi is hands down the best development tool for Win32 development.  Now, that's an opinion of course, so you'll have to try for yourself. I think you'll find that you can develop applications quickly and easily.

Warning: You still have to know how to program.  You'll often here "Not one line of code" or "Look live data at design time".  That's for demos at trade shows.  I've been consulting in Delphi for years and one thing I've noticed is that it's so easy to produce with Delphi that often the quality of the code ends up lacking. 

If you can nail that, you'll be able to create solid good looking applications rapidly.

For an example of an good-looking application, developed in 8-months by two developers see:

http://www.xapware.com/ActiveFocus.htm

Actually, this is version 1.5. Version 1.0 took 8 months. Still you get the point.

have fun!

Xavier Pacheco
Friday, January 30, 2004

Delphi rocks. Your 'Nix experience will be pay off in spades as Kylix is the Delphi for Linux. Dont let anyone sway you elsewhere. Delphi can do ANYTHING C can do (since its merely an easier to use wrapper for c) and most often, Delphi devs use C coding practices.  Kylix supports Delphi and C in the same IDE.

Newave
Saturday, July 03, 2004

*  Recent Topics

*  Fog Creek Home