Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Problem mit CreateMessageDialog? (https://www.delphipraxis.net/71336-problem-mit-createmessagedialog.html)

Alex_ITA01 13. Jun 2006 13:47


Problem mit CreateMessageDialog?
 
Hallo erstmal,
ich erstelle mir mit CreateMessageDialog mein eigenen Dialog und ändere gegebenfalls die Beschriftung einzelner Buttons. Dieser Dialog wird aufgerufen aus einer Komponente im "Destroy". Wenn sich etwas geändert hat, dann soll der Benutzer sagen ob er speichern will oder nicht.

Codeauszug:

Delphi-Quellcode:
  Form  := CreateMessageDialog(Msg, DlgType, Buttons);
  try
    if not Assigned(Form) then
    begin
      exit;
    end;
    with Form do
    try
      //..Code (Beschriftung ändern...
      Result := ShowModal;
    finally
      Free;
    end;
  except
    on E: EReadError do
    begin
      MessageBeep(MB_ICONASTERISK);
    end;
  end;
Diese Funktion gibt ein Integer zurück und wird auf "mrYes" geprüft.
Manchmal (warum auch immer), kommt er in die Exception EReadError und sagt Stream-Lesefehler.
Mache ich da etwas grundlegendes falsch?
Wäre nett wenn ihr ein Tip hättet...
MFG
Alex

Alex_ITA01 14. Jun 2006 16:01

Re: Problem mit CreateMessageDialog?
 
Hallo nochmal,
ich pushe einfach mal ;-)
Oder anderes gefragt, ist es generell sinnvoll in einem Destroy einer Komponente (diese liegt auf einem Panel und dieses wiederrum auf einem Panel und dieses dann auf der Form), ShowModal Abfragen zu machen? Ich habe diese Abfrage jetzt ins FormClose des Formulars gehangen (also aus der Komponente rausgenommen) und jetzt geht es perfekt!?
Danke schonmal im voraus.
MFG
Alex

marabu 14. Jun 2006 16:24

Re: Problem mit CreateMessageDialog?
 
Hallo Alex,

OnDestroy() ist denkbar ungeeignet für eine Benutzer-Interaktion. OnClose() ist schon etwas besser, aber richtig gut ist OnCanClose().

Grüße vom marabu

Alex_ITA01 15. Jun 2006 11:32

Re: Problem mit CreateMessageDialog?
 
Ok, danke für den Tip.
Was ist aber wenn es sich nur um eine Komponente handelt? Diese hat kein OnClose bzw. OnCanCloseEvent.
Was kommt vor dem Destroy einer Komponente noch für Events?
Meine Kompo ist eine eigene Klasse von TObject (MyKompo = class)
Danke schonmal.
MFG Alex

marabu 15. Jun 2006 16:55

Re: Problem mit CreateMessageDialog?
 
Eine solche Komponente eignet sich nicht besonders gut für dein Vorhaben. Wenn du die Steuerung nicht an die Form binden kannst, so wie du es in Beitrag #2 geschrieben hast, dann müsstest du vielleicht nochmal über dein Design nachdenken.

marabu


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