Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MessageBox mit Ja, Nein, Alle Buttons (https://www.delphipraxis.net/88160-messagebox-mit-ja-nein-alle-buttons.html)

Mackhack 11. Mär 2007 07:27


MessageBox mit Ja, Nein, Alle Buttons
 
Hi,

hat jemand einen (modifizierten) MessageBox Code um eine Kopierfunktion auszustatten mit den Buttons Ja, Nein, Alle? Da ich ungern x mal auf Ja klicken moechte.

Danke!

Matze 11. Mär 2007 07:52

Re: MessageBox mit Ja, Nein, Alle Buttons
 
Hallo Mackhack,

das ist wahrscheinlich nicht die sauberste Lösung, aber die, die mir spontan einfällt:

Delphi-Quellcode:
var
  Dlg: TForm;

const
  IDALL = 45; // irgendwas nicht vordefiniertes


  Dlg := CreateMessageDialog('Test', mtInformation, MBYESNOCANCEL);
  try
    with (Dlg.FindComponent('Cancel') as TButton) do
    begin
      Caption := 'Alle';
      ModalResult := IDALL;
    end;
    Dlg.ShowModal;
  finally
    FreeAndNil(Dlg);
  end;
Das erstellt einen Standard-Dialog und ändert die Caption des Cancel-Buttons mit mit deiner eigenen. Als ModalResult musst du dir deine eigene Konstante erstellen, um einen aussagekräftigen Konstantennamen zu erhalten. Da kannst du natürlich jeden beliebigen Inbteger-Wert nehmen, nur würde ich darauf achten, dass diese nicht in den Dialog-Konstanten vorkommt. Die von IDYES und IDNO darfst du natürlich auch nicht verwenden, da du diese selbst benötigst.

Nuclear-Ping 11. Mär 2007 11:47

Re: MessageBox mit Ja, Nein, Alle Buttons
 
Delphi-Quellcode:
var
  Dlg: TForm;

const
  IDALL = 45; // irgendwas nicht vordefiniertes


  Dlg := CreateMessageDialog('Test', mtInformation, MBYESNOCANCEL);
  try
    with (Dlg.FindComponent('Cancel') as TButton) do
    begin
      Caption := 'Alle';
      ModalResult := IDALL;
    end;
    Dlg.ShowModal;
  finally
    FreeAndNil(Dlg);
  end;
Hä? ^^ Warum nicht einfach
Delphi-Quellcode:
var
  r: Integer;
begin
  r := MessageDlg ('Willst du?', mtInformation, [mbYes, mbNo, mbAll], 0);
  case r of
    mrYes:
      ShowMessage ('Yo');
    mrNo:
      ShowMessage ('Nö ...');
    mrAll:
      ShowMessage ('Immer!');
  end;
end;
Oder hab ich da was falsch verstanden?

Matze 11. Mär 2007 11:49

Re: MessageBox mit Ja, Nein, Alle Buttons
 
Oh, ich wusste nicht, dass es mbAll gibt, dann ist meine Lösung natürlich die etwas umständlichere und nicht so tolle.

elundril 11. Mär 2007 11:56

Re: MessageBox mit Ja, Nein, Alle Buttons
 
warum nicht gleich mit:

Delphi-Quellcode:
begin
  case MessageDlg('Magst du Tiere?',mtConfirmation,[mbYes,mbNo,mbAll],0) of
    mbYes: Showmessage('Du magst Hunde, stimmts?');
    mbNo: Showmessage('Ich auch nicht.');
    mbAll: Showmessage('Ein richtiger Tierfreund!');
  end;
end;
lg el

Mackhack 11. Mär 2007 17:27

Re: MessageBox mit Ja, Nein, Alle Buttons
 
Danke.

Muss ich mir gleich mal ansehen!

Edit// Das ist MessageDlg. Ich sprach von MessageBox :-D

Matze 11. Mär 2007 19:43

Re: MessageBox mit Ja, Nein, Alle Buttons
 
Zitat:

Zitat von Mackhack
Edit// Das ist MessageDlg. Ich sprach von MessageBox :-D

Was spricht dagegen, einen MessageDialog zu nutzen? Mit der MessageBox selbst geht es afaik nicht.

Mackhack 12. Mär 2007 00:42

Re: MessageBox mit Ja, Nein, Alle Buttons
 
Ok, dann nehme ich mal den MessageDlg.

Nuclear-Ping 12. Mär 2007 06:35

Re: MessageBox mit Ja, Nein, Alle Buttons
 
Zitat:

Zitat von elundril
warum nicht gleich mit:

Delphi-Quellcode:
begin
  case MessageDlg('Magst du Tiere?',mtConfirmation,[mbYes,mbNo,mbAll],0) of
    mbYes: Showmessage('Du magst Hunde, stimmts?');
    mbNo: Showmessage('Ich auch nicht.');
    mbAll: Showmessage('Ein richtiger Tierfreund!');
  end;
end;
lg el

Kommt doch aufs gleiche raus? Bis auf dass du auf "mr..." statt auf "mb..." prüfen musst. :P

elundril 19. Mär 2007 12:12

Re: MessageBox mit Ja, Nein, Alle Buttons
 
ups ja stimmt mir mr statt mb.

ich find meins besser weil man da eine Variable weniger hat.

lg el


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz