![]() |
Dialogs.pas - MessageDlg erweitern
Moin,
folgendes Problem: Und zwar bräuchte ich einen weiteren optionalen Button in einem MessageDlg. Daher versuche ich diesen Dialog etwas zu erweitern. Im Speziellen geht es um den Button mbSaveAll, welchen ich gerne hinzufügen möchte. Also in die Dialogs.pas gesprungen und Zeile 394 entsprechend angepasst:
Delphi-Quellcode:
Ebenfalls in den Zeilen um 2074 habe ich entsprechende Änderungen eingefügt:
type
TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom); TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp, mbSaveAll); //mbSaveAll hinzugefügt TMsgDlgButtons = set of TMsgDlgBtn;
Delphi-Quellcode:
Dein Eintrag in der consts.pas (@SMsgDlgSaveAll) natürlich auch.
var
Captions: array[TMsgDlgType] of Pointer = (@SMsgDlgWarning, @SMsgDlgError, @SMsgDlgInformation, @SMsgDlgConfirm, nil); IconIDs: array[TMsgDlgType] of PChar = (IDI_EXCLAMATION, IDI_HAND, IDI_ASTERISK, IDI_QUESTION, nil); ButtonNames: array[TMsgDlgBtn] of string = ( 'Yes', 'No', 'OK', 'Cancel', 'Abort', 'Retry', 'Ignore', 'All', 'NoToAll', 'YesToAll', 'Help', 'SaveAll'); ButtonCaptions: array[TMsgDlgBtn] of Pointer = ( @SMsgDlgYes, @SMsgDlgNo, @SMsgDlgOK, @SMsgDlgCancel, @SMsgDlgAbort, @SMsgDlgRetry, @SMsgDlgIgnore, @SMsgDlgAll, @SMsgDlgNoToAll, @SMsgDlgYesToAll, @SMsgDlgHelp, @SMsgDlgSaveAll); ModalResults: array[TMsgDlgBtn] of Integer = ( mrYes, mrNo, mrOk, mrCancel, mrAbort, mrRetry, mrIgnore, mrAll, mrNoToAll, mrYesToAll, mrSaveAll, 0); Trotzdem erhalte ich beim folgenden Code
Delphi-Quellcode:
immernoch die Meldung das mbSaveAll ein undefinierter Bezeichner sei.
MessageDlg('Hier kann ein beliebiger Text angegeben werden.', mtInformation, [mbOK, mbSaveAll], 0);
So schwer kann das doch nicht sein, wie kann ich den MessageDlg denn nun wirklich erweitern? Bin über jeden Hinweis glücklich. Danke euch. |
Re: Dialogs.pas - MessageDlg erweitern
Wenn ich einen Dialog brauche, den ich so nicht mit MessageDlg() erreiche, baue ich mir eine Form und zeige diese modal an. Ich habe nix davon Quellen mit fremden Copyright abzuändern um dann beim nächsten Update bzw. die nächste Neuinstallation festzustellen, dass alle Änderungen wieder fehlen. Auch bin ich damit inkompatibel zu allem meinem Mitentwicklern. Du kannst doch Dialoge so einfach bauen mit einer Form und entsprechend frei handhaben und noch über deinen Wunsch hinaus anpassen, daher kann ich es nicht verstehen sich selber mit den Änderung der VCL Quellen in's eigene Abseits zu schiessen.
Und das Problem ist, dass Delphi nicht die Quellen ständig neu übersetzt. Alle als Quellcode gelieferten Dateien liegen als compilierte Version mit vor und diese nutzt Delphi. Die DCU's sind natürlich nicht aktuell und daher kennen sie auch deinen neuen Typ nicht. |
Re: Dialogs.pas - MessageDlg erweitern
Zitat:
Zitat:
|
Re: Dialogs.pas - MessageDlg erweitern
|
Re: Dialogs.pas - MessageDlg erweitern
Zitat:
|
Re: Dialogs.pas - MessageDlg erweitern
Stimmt, dass hatte ich bei meiner Argumentation nicht bedacht. Trotzdem is es immer noch weniger Aufwand (imho) bei jeder Delphi-Neuinstallation eine Dialogs.pas auszutauschen als jedem neuem Projekt dieses Formular hinzuzufügen.
Wenn also doch noch jemand weiß wo mein Fehler lag oder was ich vergessen habe wäre es gut es uns hier mitzuteilen. :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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