Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi MessageDlg Ohne Schliess-Kreuz? (https://www.delphipraxis.net/60662-messagedlg-ohne-schliess-kreuz.html)

Logan 10. Jan 2006 18:31


MessageDlg Ohne Schliess-Kreuz?
 
Hi,

ich wollte mal fragen, ob es möglich ist ein MessageDlg ohne das Schliesskreuz (obenrechts) zu öffnen?
Habe dazu leider nix gefunden im Net :(
Wenn ja, wie? :angel:

Danke euch schon mal für eure Hilfe!

SirThornberry 10. Jan 2006 18:38

Re: MessageDlg Ohne Schliess-Kreuz?
 
das schließen kreuz kann man so deaktivieren bei einem normalen Form:
Delphi-Quellcode:
DeleteMenu(GetSystemMenu(Handle, False), SC_CLOSE, MF_BYCOMMAND);
DrawMenuBar(Handle);
Du musst also das Handle des Menüs bekommen (es also per CreateMessageDialog) erstellen und dann geht das auch auszublenden.

Also so:
Delphi-Quellcode:
var LDialog: TForm;
begin
  LDialog := CreateMessageDialog('Beispiel.', mtInformation, [mbYes, mbNo]);
  DeleteMenu(GetSystemMenu(LDialog.Handle, False), SC_CLOSE, MF_BYCOMMAND);
  DrawMenuBar(LDialog.Handle);
  if LDialog.ShowModal = mrYes then
    ShowMessage('Es wurde mit "Ja" bestätigt.');
  LDialog.Free;
Bedenke: Das Schließen-Kreuz ist zwar deaktiviert aber Alt+F4 sowie das Senden von Messages können das Schließen trotzdem erzwingen ohne das einer der Buttons geklickt wurde.

Logan 10. Jan 2006 19:22

Re: MessageDlg Ohne Schliess-Kreuz?
 
Zitat:

Zitat von SirThornberry
Bedenke: Das Schließen-Kreuz ist zwar deaktiviert aber Alt+F4 sowie das Senden von Messages können das Schließen trotzdem erzwingen ohne das einer der Buttons geklickt wurde.

Hmm, schade dann geht es doch nicht auf wie ich es mit vorgestellt habe :(

Aber vielen lieben Dank!

SirThornberry 10. Jan 2006 19:26

Re: MessageDlg Ohne Schliess-Kreuz?
 
warum nicht? du kannst das ganze ja in eine Repeat-Until schleife machen.

Somit bekommst du es hinn das der nutzer unbedingt eines der Felder klicken muss:
Delphi-Quellcode:
var LDialog: TForm;
    LRes: Integer;
begin
  LDialog := CreateMessageDialog('Beispiel.', mtInformation, [mbYes, mbNo]);
  DeleteMenu(GetSystemMenu(LDialog.Handle, False), SC_CLOSE, MF_BYCOMMAND);
  DrawMenuBar(LDialog.Handle);
  repeat
    LRes := LDialog.ShowModal;
  until (LRes = mrYes) or (LRes = mrNo);
  if LRes = mrYes then
    ShowMessage('Es wurde mit "Ja" bestätigt.');
  LDialog.Free;
end;

Logan 10. Jan 2006 19:57

Re: MessageDlg Ohne Schliess-Kreuz?
 
Stimmt hast recht, leider habe ich es n Tick zu spät gelesen, habe mein Ziel nun anders realisiert.

Aber vielen Dank für deine Hilfe!!!!!!!!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 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