![]() |
CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?
Ich erzeuge meine eigenen Dialoge mit CreateMessageDialog. Bisher habe ich das Problem mit zu langen Zeilen mit manuellen Zeilenumbrüchen im String beseitigt.
Aber gibt es eine elegantere Lösung, den übergebenen String wie Windows nach rund 75 Zeichen umzubrechen? Ich habe es so versucht aber das funktioniert nicht richtig mit der Zählung
Delphi-Quellcode:
Ich glaube ich habe in der Doku eine Lösung gefunden.
MsgStr := '1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1' + sLineBreak +
'2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ' + sLineBreak + sLineBreak + '3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 '; CharCount := 0; for i := 1 to Length(MsgStr) - 1 do begin Inc(CharCount); IsLineBreak := (Pos(sLineBreak, MsgStr) = i); if IsLineBreak or ((CharCount > 75) and (MsgStr[i] = ' ')) then begin if not IsLineBreak then Insert(sLineBreak, MsgStr, i + 1); CharCount := 0; end; end;
Delphi-Quellcode:
MsgStr := WrapText(MsgStr , sLineBreak, ['.', ' ', #9, '-'], 75);
|
AW: CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...:P
Zitat:
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:
Vorteile:
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; 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. |
AW: CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?
In System.SysUtils gibt es eine Funktion
![]() |
AW: CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?
Zitat:
Noch etwas in die Runde werf: wie wärs mit Taskdialog? |
AW: CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?
Ich bin eine von wenigen die noch XP unterstützen. Daher nein.
|
AW: CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?
Ja. Das ist richtig. (Bei TMS gäbe noch etwas was den Taskdialog auch unter XP unterstützt, ich selber habe ich mich aber dagegen entschieden.)
|
AW: CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?
Zitat:
|
AW: CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?
Zitat:
|
AW: CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?
Zitat:
Manchmal wundere ich mich über einige deiner Aussagen speziell was Optik und Geschmack angeht. Mache doch so wie ich.. und ja alle Message Dialoge sind vollständig anpassbar. Zitat:
Der User ist König und möchte so viele Zeichen anzeigen wie er will. Ich halte nichts von Standards ich überlasse es den Anwender wie er diese festlegt und stelle nur die Funktionsweise zur Verfügung. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 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