Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 

Re: Standard-Dialoge

  Alt 15. Mär 2005, 09:59
Zitat von Matze:
Um einen Dialog selbst mit den verschiedensten Buttons zu bestücken, kann man Delphi-Referenz durchsuchenCreateMessageDialog verwenden, auf das ich hier aber nicht näher eingegangen bin, da man dies nicht sehr häufig benötigt.
Na ja, ich verwende das schon ab und zu

Für alle die nicht erst in der Hilfe nachlesen wollen hier ein kleines Beispiel:


Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  f: TForm;
begin
  f := CreateMessageDialog('Test', mtInformation, [mbOk, mbCancel]);
  f.Color := clRed;
  f.Font.Color := clYellow;
  (f.FindComponent('Cancel') as TButton).Caption := 'Huch';
  f.ShowModal;
  f.Free;
end;
Anmerkung:
Delphi-Quellcode:
f := CreateMessageDialog('Test', mtInformation, [mbOk, mbCancel]);
f.ShowModal;
ist vom Aussehen absolut identisch mit
  MessageDlg('Test', mtInformation, [mbOk, mbCancel]); Das liegt daran, das MessageDlg intern auch CreateMessageDialog verwendet:
Delphi-Quellcode:
// Unit: Dialogs.pas / Delphi 7
//
// Borland Delphi Visual Component Library
// Copyright (c) 1995-2001 Borland Software Corporation
...
function MessageDlg(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin
  Result := MessageDlgPosHelp(Msg, DlgType, Buttons, HelpCtx, -1, -1, '');
end;
...
function MessageDlgPosHelp(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer;
  const HelpFileName: string): Integer;
begin
  with CreateMessageDialog(Msg, DlgType, Buttons) do
    try
      HelpContext := HelpCtx;
      HelpFile := HelpFileName;
      if X >= 0 then Left := X;
      if Y >= 0 then Top := Y;
      if (Y < 0) and (X < 0) then Position := poScreenCenter;
      Result := ShowModal;
    finally
      Free;
    end;
end;
...
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat