![]() |
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:
Diese Funktion gibt ein Integer zurück und wird auf "mrYes" geprüft.
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; 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 |
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 |
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 |
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 |
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 08:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz