Ich kenne mich mit dem ganzen Message-Handler-Unterbau nicht wirklich aus, so tief runter habe ich nie gebuddelt. Mir wäre es lieber gewesen dieses TApplication-Fenster zu haben, aber zur Not tut es (wahrscheinlich) auch das "Haupt"formular der
VCL-Anwendung.
Ist mir trotzdem unverständlich warum man das so fest einbacken muss.
TApplication.CreateHandle() sieht in XE7.1 so aus:
Delphi-Quellcode:
LHandle := CreateWindowEx(WS_EX_TOOLWINDOW, WindowClass.lpszClassName, {$IFNDEF CLR}PChar{$ENDIF}(FTitle),
WS_POPUP or WS_CAPTION or WS_CLIPSIBLINGS or WS_SYSMENU
or WS_MINIMIZEBOX,
GetSystemMetrics(SM_CXSCREEN) div 2,
GetSystemMetrics(SM_CYSCREEN) div 2,
0, 0, 0, 0, HInstance, nil);
Ich rege mich nur auf dass WindowClass eine Record-Variable im implementation-Teil ist. Ich komme also von außen auch nicht dran.
Delphi-Quellcode:
var
WindowClass: TWndClass = (
style: 0;
lpfnWndProc: @DefWindowProc;
cbClsExtra: 0;
cbWndExtra: 0;
hInstance: 0;
hIcon: 0;
hCursor: 0;
hbrBackground: 0;
lpszMenuName: nil;
lpszClassName: 'TApplication');