About the author
One of the rarest moments I have with regards to applications are the fact that Mercury, the SMTP application, and another application I shall not name, had trouble exiting under Windows 2008 R2 SP1. After closing the applications, these applications would remain in the task manager's list. Attempting to start another instance would fail.
Trying to terminate these applications through taskkill, procexp and Task Manager would give me these errors:
ERROR: The process with PID XXXX could not be terminated. Reason: There is no running instance of the task.
Despite using taskkill, procexp, and Task Manager, none of these applications could actually terminate the applications mentioned above. Desperate, I tried running these applications under Vista compatibility mode, but it didn't help.
After scratching my head for umpteenth times, it turned out that the fix was from MSKB: 4345459.
This led me to believe that the issue was due to some TCP port cleanup issue. After installing the KB, both the applications above were able to be terminated.
Continued discussion of undocumented Delphi 8 Property Access Specifiers, and other ways of adding and removing delegates / events handlers, including clearing the list of all the delegates / event handlers.
This article discusses the new Delphi 8 property access specifiers.
A method pointer is now the same as a global procedure, ie, procedure of object = procedure.