Ahem, the following code I had used to test will leak:
var
sl : TStringList;
begin
sl := TStringList.Create;
sl.Add('This will leak David!');
sl.Add('This will leak David!');
end;
See: no free, thus it will leak at least one TStringList.
I had even put that construct into the dpr and put an exit after the last Add call, so the application quit immediately. But it didn't show any message box.
Ok, doing that in the dpr and thus not running any VCL initialisation made in the dpr's main code migt be problematic for showing a message box,
but the code above was in the FormClose event of the main form and got called!