Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#22

AW: Windows-Taskdialog & Windows XP

  Alt 23. Mär 2018, 16:14
* Soweit ich weiß macht das ShowMessage intern das Fenster selber und verwendet keine Windows-Dialoge. Ergo simuliert die VCL auch.
Nein, bzw. nicht immer.
Entweder es wird selber aus einer TForm der Dialog zusammengebaut oder es wird die WinAPI genutzt.

ShowMessage landet irgendwann hier
Delphi-Quellcode:
function MessageDlgPosHelp(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer; const HelpFileName: string): Integer;
begin
  if TOSVersion.Check(6) and UseLatestCommonDialogs and IsNewCommonCtrl and StyleServices.IsSystemStyle then
    Result := DoTaskMessageDlgPosHelp('', Msg, DlgType, Buttons, HelpCtx, X, Y, HelpFileName)
  else
    Result := DoMessageDlgPosHelp(CreateMessageDialog(Msg, DlgType, Buttons), HelpCtx, X, Y, HelpFileName);
end;
Oben geht es zu den Task-Dialogs der WinAPI (ab Vista mit aktiven XP-Styles)
und CreateMessageDialog baut eine eigene TMessageForm der VCL auf.

Du kannst auch selber WinApi.Windows.MSDN-Library durchsuchenMessageBox oder Delphi-Referenz durchsuchenApplication.MessageBox aufrufen.
Bei Letzterem wird zusätzlich noch die Fensterposition bestimmt, die Aktivität der anderen VCL-Forms gestuert und UseRightToLeftReading als MB_RTLREADING an die API übergeben.

Aber simuliert wird nichts.
MSDN-Library durchsuchenMessageBox erstellt ein Windows-Fenster und legt ein Image, ein Label und paar Buttons auf dieses Fenster.
Genau das Gleiche macht auch Delphi-Referenz durchsuchenCreateMessageDialog, nur dass da noch die VCL-Wrapper um jede einzelne Windows-Komponente drumrum sind, aber nativ sind diese Komponenten dennoch.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Mär 2018 um 16:25 Uhr)
  Mit Zitat antworten Zitat