Tuesday, July 27, 2004

CC #22009

Today I posted to Borland's CodeCentral an example which shows a possible way to access client IP address from a DataSnap remote data module.

Monday, July 19, 2004

My Delphi Tools

Here's list of tools I often use from my Delphi IDE (menu Tools\Configure Tools):

Title: Explore &Target Directory
Program: explorer.exe
Working Dir:
Parameters: /e,/select, $EXENAME

Title: Explore &Source Directory
Program: explorer.exe
Working Dir:
Parameters: /e,/select, $EDNAME

Title: Open Source in &Notepad2
Program: C:\Program Files\Notepad2\Notepad2.exe
Working Dir:
Parameters: $EDNAME

Title: &Console in Target Directory
Program: cmd.exe
Working Dir:
Parameters: /k cd $PATH($EXENAME)

Title: C&onsole in Source Directory
Program: cmd.exe
Working Dir:
Parameters: /k cd $PATH($EDNAME)

Title: Explore &Delphi Directory
Program: explorer.exe
Working Dir:
Parameters: "C:\Program Files\Borland\Delphi7",/e

Title: &Resource Explorer
Program: resxplor.exe
Working Dir:
Parameters: $EXENAME

Failure is rare

A quote from MSDN:

"There is no indication of success or failure. Failure is rare. There is no extended error information for this function; do not call GetLastError."

I think this gem should be archived for future generations ;-)
It's an excerpt from documentation of CharLower API function.

QC #8664

I've just posted this report to Borland's QualityCentral.
Under certain circumstances, httpsrvr.dll may make one additional, superfluous call to ReadClient after all data has already been read. In such case, the call will time out after 60 seconds.
Only happens if the client request content length is so big (from my tests, >48K) that it has to be read in chunks.

Friday, July 16, 2004

Localizing Borland runtime packages

Today, I saw someone on a Czech Delphi mailing list saying that it's not possible to localize Borland runtime packages using Delphi's built-in Translation Manager. Well, it certainly is possible; all you have to do is create a package project with the same structure (ie. containing the same units) as the target package.
The easiest way to create such a package is to let the Delphi IDE generate it for you ;-)
It does it when you double-click a .dcp node in the package designer, so, for example, if you want it to generate vcldb.bpl you first need to open a package which contains vcldb.dcp in its requires clause. Or create a new temporary .dpk project and add vcldb.dcp to its requires clause so you can double-click it.
Save the generated package project under a name corresponding with the target .bpl file name - for example, in Delphi 7 save generated vcldb.dpk as vcldb70.dpk. This will make the Translation Manager create the correct resource DLL project file name and you won't have to rename it before deployment.
From this point on, everything is pretty much standard - you use the Translation Manager to add new languages and translate the resources as usual. I've just tried it and it works. Easy, isn't it?

Tuesday, July 06, 2004

More silence

My shoulder needs surgery :-(
I'm going to the hospital tomorrow. Should be back home on Friday, if everything goes well. The right arm will be fixated again.
Oh my. More pain. More one-hand typing... Grrrrr.