Ich dachte eben, so naiv wie ich nun mal bin, dass die Borländer einfach den ClassName der Application-Instanz als ClassName für das Fenster nehmen.
Demnach hätte das hier schon gereicht:
Delphi-Quellcode:
type
MyApplication = class(TApplication);
PClass = ^TClass;
begin
PClass(Application)^ := MyApplication;
Application.Initialize;
...
Als es nicht klappte, schaute ich in die dunklen Abgründe der Forms.pas (*uärks*...

) und musste feststellen, dass sie dort tatsächlich ein Stringliteral benutzen.

Es gibt also keinen hübschen, delphischen Weg. Du müsstest schon den Klassennamen über die Windows
API ändern (kA wie/ob das geht), oder einfach damit leben.
Ich wüsste nicht was schlimm daran sein könnte. Delphi ist ja nicht peinlich, wie dieses komische Viech namens VB.