Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: wieso hat jede anwendung in delphi zwei handles?

  Alt 14. Dez 2015, 13:17
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');
  Mit Zitat antworten Zitat