Moin...
Zitat:
Aber gibt es eine elegantere Lösung
Dieses Problem hatte ich auch mal. Die Texte kamen die so raus wie ich sie wollte.
Abhilfe schaffte ein eigener MessageDialog.
Im Prinzip eine stinknormale Form (Modal) mit der Optik, den Buttons und der Logik. Von dieser Form hat man die Möglichkeit durch Ableitungen andere Dialoge zu erstellen.
Delphi-Quellcode:
TMyMessageDialog = class
strict private
class function ShowMessage(MessageCaption: string; MsgType: TMsgDlgType; Buttons: TMsgDlgButtons; MessageLines: TStrings; Help: LongInt = 0; MessageColor: Integer = clBlack; Parent: TForm = nil): Integer;
public
constructor Create;
destructor Destroy; override;
class function MessageDlg(MessageText: string; MsgType: TMsgDlgType; Buttons: TMsgDlgButtons; Help: LongInt = 0; MessageColor: Integer = clBlack; Parent: TForm = nil): Integer; overload; // wie MessageDialog Original
class function MessageDlg(MessageText: string; MessageHeader: string; MsgType: TMsgDlgType; Buttons: TMsgDlgButtons; MessageColor: Integer = clBlack; Parent: TForm = nil): Integer; overload;
class function MessageDlg(MessageLines: TStrings; MessageHeader: string; MsgType: TMsgDlgType; Buttons: TMsgDlgButtons; MessageColor: Integer = clBlack; Parent: TForm = nil): Integer; overload;
class function MessageDlg(E: EDatabaseError; MessageHeader: string; MsgType: TMsgDlgType; Buttons: TMsgDlgButtons; MessageColor: Integer = clBlack; Parent: TForm = nil): Integer; overload;
end;
Vorteile:
1. Corporate Design
2. internationalisierbar
3. Farbgebung der Texte
4. Breite paßt sich den Texten an
5. Höhe paßt sich den Texten an
6. Texte als TStrings
...das wäre meine elegantere Lösung.