![]() |
ShowMessage mit ungewollten Zeilenumbruch
Moin,
ich stelle hier mal zwei Fragen zusammen rein weil ich nicht weiß ob die evtl. zusammengehören: Folgender Sourcecode:
Delphi-Quellcode:
Erwarten würde ich jetzt als Ausgabe:
if not SysUtils.DirectoryExists(ArbeitsVerzeichnis) then
begin Arbeitsverzeichnis := 'd:\h.bothur\entw\anw\soern 2datev\v7.0\Soe2Datev'; StringReplace(Arbeitsverzeichnis, ' ', '*', [rfReplaceAll, rfIgnoreCase]); ShowMessage('Falsches Verzeichnis im INI-String !' +#13 +'Programm wird beendet' + #13 + 'Verzeichnis: ' +Arbeitsverzeichnis); Application.Terminate; end; Falsches Verzeichnis im INI-String ! Programm wird beendet Verzeichnis: d:\h.bothur\entw\anw\soern 2datev\v7.0\Soe2Datev ich bekomme aber: Falsches Verzeichnis im INI-String ! Programm wird beendet Verzeichnis: d:\h.bothur\entw\anw\soern 2datev\v7.0\Soe2Datev Sprich: 1) Das Stringreplace ersetzt das Leerzeichen nicht durch einen '*' - warum nicht ? 2) Woher kommt der Zeilenumbruch beim Leerzeichen ? Danke Hans |
AW: ShowMessage mit ungewollten Zeilenumbruch
Zitat:
Delphi-Quellcode:
Und "ja", das ShowMessage mach bei Leerzeichen einfach irgendwann Zeilenumbrüche (WordWrap), wenn die Zeile "zu lang wird".
if not SysUtils.DirectoryExists(ArbeitsVerzeichnis) then
begin Arbeitsverzeichnis := 'd:\h.bothur\entw\anw\soern 2datev\v7.0\Soe2Datev'; Arbeitsverzeichnis := StringReplace(Arbeitsverzeichnis, ' ', '*', [rfReplaceAll, rfIgnoreCase]); ShowMessage('Falsches Verzeichnis im INI-String !' +#13 +'Programm wird beendet' + #13 + 'Verzeichnis: ' +Arbeitsverzeichnis); Application.Terminate; end; Frag mich aber nicht, was "zu lang" ist. Ich habe mich damit abgefunden. 😅 LG Incocnito |
AW: ShowMessage mit ungewollten Zeilenumbruch
Hmm..
Versuche mal
Delphi-Quellcode:
Arbeitsverzeichnis := StringReplace(Arbeitsverzeichnis, ' ', '*', [rfReplaceAll, rfIgnoreCase]);
StringReplace ist eine Function, die den 'neuen', 'geänderten' String zurück gibt.... |
AW: ShowMessage mit ungewollten Zeilenumbruch
Zu langer Text wird an vielen Stellen automatisch umgebochen.
Teilweise kann man dort z.B. die Space (Leerzeichen) durch einen NonBreakingSpace (#160) ersetzen, falls es in der Komponente/API keinen Option dafür gibt, wie z.B. das WordBreak im TMemo. |
AW: ShowMessage mit ungewollten Zeilenumbruch
Zitat:
Gruss Hans |
AW: ShowMessage mit ungewollten Zeilenumbruch
Da es vom * keine groß-/kleingeschriebene Version gibt, ist das rfIgnoreCase unnötig,
und da ich schreibfaul bin und das rfReplaceAll auch nicht haben mag, benutze ich einfach die neuere API ![]()
Delphi-Quellcode:
bzw.
Arbeitsverzeichnis := ReplaceStr(Arbeitsverzeichnis, ' ', #160);
![]() oder gar die noch neueren StingHelper ala StringVariable.Replace(...) ![]()
Delphi-Quellcode:
ShowMessage('Falsches Verzeichnis im INI-String !'#10'Programm wird beendet.'#10'Verzeichnis: ' + Arbeitsverzeichnis.Replace(' ', #160));
Ab einer gewissen Breite gibt es dennoch einen Zwangsumbruch (außer du hast auch einen UltraWide-Monitor mit mehr Platz) und genauso kann man auch andersrum "Sollbruchstellen" einfügen (z.N. WBR WordBreak oder SHY Soft-Hyphen), damit es an definierter Stelle umbricht, falls nötig. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 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