Blog and new browsers – IE 8 beta 2, Google Chrome

Fun! IE now acts as it is not an IE we all know. I have installed beta 2 of Internet Explorer 8 and I have to adjust my CSS settings to work as if I would use Mozilla browser. Finally IE is closer to standards then ever. Other then that everything appears to be working fine. But if you notice anything, please let me know. Another thing was a test against Google Chrome. Overall everything is working. I have also tested my main web-site and it appears not requiring any adjustments. I noticed a funny thing. If you are using just one tab then combined size of the application is smaller then IE (57Mb versus 30.5Mb). Yes, both are still Read more

TIPS: Draw Image From TImageList

This question is coming back and again. I have a TImage in many form which shows the status of the item. It requires status image being changed when it is changed. I do not want to use several instances of the TImage on the form. Instead I would like to use TImageList to store and share them. Yes, you can. But there are some quirks you have to consider when doing so. Let’s say you have state images and you have to draw a different one based on the state. Let’s say you have placed Image list and an Image on your form and populated the list with few state images var   MyImageList: TImageList;   MyImage: TImage; Canvas That Read more

Delphi, methods and default values. Convenience or contract enforcement?

Delphi, methods and default values.

Being somewhat unique in methods declaration for the classes, Delphi requires you to have proper method parameters declaration, but:

  1. You do not have to have any default values for the parameters being propagated into implementation section for the method.
  2. And you do not have to have any parameters being specified in implementation section at all.
  3. If your class implements an interface, then while order and type of parameters remain unchanged for the interface method implemented, compiler would not not even detect it.
  4. When declaring the method and then using code complete feature of the IDE, stub generated would have all parameters but no default values.
  5. Declaration of the parameters could be “optimized” by changing the way they are grouped if they are of the same type. And sync is not enforced between declaration and implementation.

Convenient. Nice. Easy.

Again, it is convenient since it does not force you to propagate your changes between two if you are to change your default values.

Is default value good or evil?

Well, Microsoft saying it is specific to an implementation of the language (C#) and suggests to use overloads instead. Yes, it can be done, but defaults were introduced for a reason. And, in fact, some compilers, even Delphi, would be confused with overloaded declaration if there is a slight chance of mixing two.

(more…)

DS Plug-in System is ready for Delphi 2009

Are you using DS Plug-in system and  wondering if your code would still work in the new version? Then answer is Yes. DSPS has been adjusted where necessary to support a new version of Delphi. At this time I am actively testing all my components to ensure that everything is done properly. Delphi 2009 is not yet out so I cannot publish a new version yet but if you are a Tiburon beta tester you want to try a latest release by sending me an email.

Was: Delphi in the workgroup

In his post today, Marshall Fryman discsusses problems with shared development environment or workgroup development. Yes, it could be a complex problem which is rarelly addressed. Note. Even though we are talking about Delphi here, it is really could be applied to any development environment. Let look at the problem closer. Problem You have development environment with over dozen of development stations. You have similar development environment: versions of development tools used, locations, components. How to do easy update/upgrade in this environment and keep it up-to-date? Solutions 1. Virtualization My vote goes for virtualization – choose from VMWare, Microsoft VirtualPC or other solutions. Then create base image which everyone would share, change your settings that anything which is user specific goes to his/her Read more

Delphi 2009 beta: Installation improvements

Over the span of few weeks I have had “hot” conversation in public NG about speed of installation and that R&D team should do something about it. Good news For people who worried about future experience with installation of the Delphi 2009 – it is fast (or faster, since it is always comes to personal opinion). I have done several “fresh” installs, along with “on-top” installations. It did took me less then I spend downloading it over my 3Mb connection. Keep in mind a size and compare it to Visual Studio installation time and it start to look very good. Not to be along with that statement there is other people’s opinion – Holger Flick posted last Saturday about his Read more

After-match: CodeGear and Borland in Q2

A transcript of the preliminary Q2 results for Borland is now available (10 pages). Just so we do have something to compare with included are results from Q1. Since it is a last time when there is a public obligation to report such information for CG, let’s take a look. To keep the same format: Three Months Ended Three Months Ended July 31, 2008 March 31, 2008 ALM DPG CodeGear || ALM DPG CodeGear Licenses 10,000 || 9,415 9,122 9,283 Service 21,900 || 22,972 4,549 2,933 Total 31,900 10,000 10,800 || 32,387 13,671 12,216 This compares to the prior year Q2: enterprise license a decline of 28.4%; maintenance a decline of 2.4%; and training and consulting a decline of 20%. ALM revenue was 1.4% below Read more