Thursday, June 25, 2009

MessageDlg and ShortCuts

Today I came across an interesting problem:
A user of the tube inspection system I develop reported that he was not able to emergency stop the automatic probe drive under certain circumstances. The hardware emergency stop button worked of course but the usual way of using a short cut in the software did not. The emergency stop short cut is implemented using the Application.OnShortCut event which should be fired under all circumstances but apparently it does not. We drilled the problem down to fact that Key events do not arrive in the application message loop when a modal message box (created using the Dialogs.MessageDlg function) is shown.
Fortunately the Dialogs unit also provides the function

function CreateMessageDialog(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; DefaultButton: TMsgDlgBtn): TForm; overload;

which allows to create a very similar dialog and which when opened modally still allows to handle short cuts.
PS:
During my search for a solution to my problem I came across a very interesting by Peter Below: A Key's Odyssey.

Tuesday, May 12, 2009

G2 Remoting

During my studies at Queensland University of Technology I did some research on distributed systems and the then new .NET Remoting framework. The project concluded with a paper that I published with my tutor Wayne Kelly:
Kelly, W. & Frische, L. (2003), G2 remoting: A cycle stealing framework based on .net remoting, in '2003 APAC Conference on Advanced Computing, Grid Applications and eResearch, Gold Coast'.

Tuesday, April 21, 2009

One of my duties as a developer in a small company is to write the user documentation for the software I develop. Originally I created my own xml-xslt based documentation system which worked well enough to generate windows compressed html online documentation. However generating printable pdf documentation was always a hassle which involved converting a large html file to pdf using MS Word.
About a year ago I decided to switch to docbook which allows me to easily compile my documentation with one makefile to chm or pdf (as well as other formats like docx which is essential for external translators).
One of the nice features of docbook are callouts - numbered references in images or text. My user documentation always includes a reference of all dialogs and controls of the software, and this is exactly what callouts are made for. Unfortunately writing callouts for docbook usually involves writing a list of callout areas (with picture coordinates in percent or pixel) manually. Being a software developer myself I fired up my favourite IDE (Delphi) and wrote a tool to generate callout lists for docbook images:

The tool allows me to define callout areas for an image:

And it generates the docbook code for me:
Once I am done an image with the callout overlay is rendered:
And this is how the finished documentation looks like in chm:
Let me know if you are interested in the tool, I might be able to upload it to my blog.

Paper on software development of multifrequency eddy current systems

In 2005 my colleague Gerhard Scheer and me attended the conference "DGZfP Jahrestagung 2005" in Rostock, Germany. We published a paper on software development of multifrequency eddy current systems, which is unfortunately ony available in German.

Rivet row inspections on aircraft structures

In 2006 my colleague Gerhard Scheer, Theodor Meier from Airbus Deutschland and me attended the ECNDT conference in Berlin. We published two papers at the conference, one paper on rivet row inspections on aircraft structures and another one on borehole inspections.