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:
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;
Ich glaube ich habe in der Doku eine Lösung gefunden.
MsgStr := WrapText(MsgStr , sLineBreak, ['.', ' ', #9, '-'], 75);