Problem mit MessageDlg und Zeilenumbruch
-
Hallo,
Problem ist er macht in MessageDlg kein Zeilenumbruch '\n'
Ich lade aus einer Datei mit TIniFile aus und dann Speichere ich den in ein 'String'
Bei der Übergabe an MessageDlg zeigt er mir die dann an.
Macht aber kein ZeilenumbruchWieso macht er das?
Wen ich den Text direkt eingebe geht das.
-
Zeige mal etwas Quelltext bitte!
-
Ok
... In der Header Datei private: // Benutzer-Deklarationen String MSGArray[1]; ...
String __fastcall TMyApps::Language(TIniFile *FV_LanguageInI, String FV_sPraefix, int FV_iID, String FV_sDefault) { return FV_LanguageInI->ReadString(FV_sPraefix, String(FV_iID), FV_sDefault); } //---------------------------------------------------------------------------
MSGArray[0] = MyApps->Language(MainForm->LanguageInI, "Text", 4001); // Medium schon vorhanden!\n\nBitte verwenden Sie ein anderen. ... MessageDlg( MSGArray[0], mtInformation, TMsgDlgButtons() << mbOK, 0);
Wie gesagt es kommt dann "Medium schon vorhanden!\n\nBitte verwenden Sie ein anderen." raus
-
Beachte, dass die Escapesequenz '\n' im C++-Quelltext vom Compiler zu ASCII-Code 10 gemacht wird, während es auch die einzelnen Zeichen \ und n gibt.
-
Ja hmm
kann man das irgend wie dann zu ASCII-Code 10 machen?
-
Hallo,
ersetze Mal das \n in MSGArray[0] durch \n\r mit der Funktion ReplaceString und schaue ob das dann funktioniert
MSGArray[0]=ReplaceString(MSGArray[0],"\\n","\n\r",TReplaceFlags() << rfReplaceAll); MessageDlg( MSGArray[0], mtInformation, TMsgDlgButtons() << mbOK, 0);
Wenn ich jetzt keinen Syntaxfehler eingebaut habe, dann müsste es so funktionieren.
Gruß
Hawk
-
Hi,
Danke Hawk
Nur das ReplaceString gibt es nicht es ist 'StringReplace'
Und so klapp es
StringReplace(MSGArray[0],"\\n","\n",TReplaceFlags() << rfReplaceAll);
Danke noch mal
Gruß Markus