Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

CreateMessageDialog Message zu lang. Zeilenumbruch nach 75 Zeichen?

  Alt 10. Jun 2019, 14:21
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);

Geändert von DieDolly (10. Jun 2019 um 14:55 Uhr)
  Mit Zitat antworten Zitat