I'm going to have to take the opposite view to the last few posts. Don't even try to work with Lazarus if you value your sanity. Yes, it's "mostly" compatible with Delphi. But it has no support for some of the most useful features, such as Packages (no plugins for you!) and Frames (a very useful way to divide a form up into reusable sub-groups.) Also, the debugger is a real pain to work with.

I was at the Delphi Live conference last week, and they showed off a demo of a working Delphi compiler for OSX. They're working on a cross-platform compilation system for Delphi, and it's making a lot of progress. Lazarus has cross-platform development for years now, but I haven't seen them actually make any progress on rectifying the crippling lack of features that makes it useless for serious development. You need cross-platform and a strong feature set to write cross-platform software, and to be honest, my money's on CodeGear reaching the point where they have both long before the Lazarus people do.

I love open-source software, when it's done right. Sadly, Lazarus is almost a textbook example of how to do it wrong.