2009
03.06

Don’t mind my venting

Quick post to remind anyone that stumbles across this blog that most of what I’ve written so far is just me venting about various frustrations in trying to learn Delphi and work in a Windows (XP) VM all day long. In many cases there are decent solutions to my complaints, and other things are just things you have to get used to. Overall I’ve been making good progress over the last week or so, and I’m actually enjoying it somewhat, in spite of the fact that I don’t care much for Pascal or Windows XP.

I just returned from a trip up to NJ where I demoed what I’ve been working on to the rest of the team, and it seemed to go quite well. Basically all I showed was a grid, but everyone seemed to understand the amount of effort that went into making that grid work (especially considering my lack of experience). I’m really starting to feel better about this project.

2009
03.03

Shift+F3

Why oh why does this not search backwards but instead loop through case changes on the identifier currently under the text insertion caret? UGH.

2009
03.03

CodeRush code complete

Even the code complete feature of CodeRush is problematic: it’s too slow. I’ve seen things flash by my eyes that I would have wanted to accept, but I would need to slow my typing down in order to have time to accept them.

2009
03.03

Delphi undo

I’ve already complained about this before but it bears repeating: the fact that you can’t undo past a save totally blows. Maybe there’s a setting I’m missing somewhere.

2009
03.02

The need to use a semi-colon instead of a comma in function and procedure definitions has tripped me up more times than I care to admit.

It seems that when navigating to a declaration to a definition, CodeRush will often take me to the wrong definition.

2009
03.02

Seems that Xerox has been working from the “How To Write Unmaintainable Code” guide: they use totally different syntax for specifying properties within the same command:

Here’s how you specify properties for the <select> section:

<select><prop><title/><size/><content_type/><document/><entityowner/><modified_date/><create_date/> </prop></select>

And here’s how you specify properties for the “where” section – it’s at least similar but I think you need the “fully qualified” property name:

<where> <contains><prop><Object.title/></prop><literal>*</literal></contains> </where>

And here’s the kicker – the <orderby> element – totally different:

<orderby><sortspec><propname>Object.title</propname></sortspec></orderby>

Note the use of <propname> instead of <prop> and the lack of brackets around the property name. Great stuff. Top notch.

2009
03.01

The “Show Desktop” feature of Windows is a joke. Here’s the before picture:
windowsshowdesktopbefore

And here’s what it looks like after I clicked the “Show Desktop” icon twice (once to show the desktop, again to “restore” (ha!) it):
windowsshowdesktopafter

2009
03.01

This type of error happens MUCH less frequently in OS X:
errordeletingfile

2009
03.01

Sunday Morning Blues

This morning is shaping up to be a perfect example of what I’ve been talking about: I really wanted to spend some time this weekend getting ahead on the Delphi project, but now I find myself reading through Cocoa Dev Central.

(ps – taxes are looming – gotta get started on them today)

2009
02.28

Initial Delphi rambling

  • var section – how quaint. How 80′s.
  • Default color coding kinda sucks
  • Pain in the ass to have to have separate declaration and implementation of functions and procs, but the C-language variants all have this so I guess it’s understandable.
  • Typing begin/end; all the time is a drag. I miss the auto-curly braces (and parenthesis, etc.) of IntelliJ
  • Why do we need functions and procedures? Why not just functions?
  • Code complete is not great. It is very slow, you can’t use tab to select what you want, and the list is not fully alphabetical and is often very very long:

codecomplete

  • The help file is rather poor. I wasted about 2 days trying to figure out how to populate a TClientDataSet programmatically, when I was finally shown the “Create Data Set” menu in the popup menu on the component. I could not find any reference to this anywhere in the manual. Also note the confusing terminology – Create Data Set? Weird.
  • The home key in the editor should alternate between the beginning of the line and the beginning of text on the current line.
  • The “uses” section does get updated automatically when you drop a component on a form, but it appears that it still has to be updated manually when adding code that references objects not already in uses. IntelliJ handles the imports automatically.
  • I miss the auto error checking in IntelliJ – you know something is wrong with your code the minute you type it. No need to compile first.
  • I miss Java’s error reporting because it tells you the line where the code blew up. All you get in Delphi is the error.

errorexample

  • This must not be my day. I just downloaded the PDF help file for the cxGrid, and I can’t index it. It hangs Preview. Ugh
  • Oh man – when you clear a dataset in a TClientDataSet, you must remember to clear the fielddefs – ALL OF THEM. Ugh
  • Great English

greatenglish1

  • IntelliJ has no problem doing this:

nocodecompletionwitherrors

  • I love how when you’re new to Delphi and you’re looking for string functions so you call up the help and the first thing you find is something called “String Functions”. “Oh – that must be it”, you say, so you click it and then your help window resizes to a size you did not want and the string functions are actually from some 3rd party library. (RAP). Then you go to resize the help window and it gives you an error that the help file doesn’t exist. LOL