Hallo Socke, vielen Dank!
Auch Deine Hilfe ist eher kryptisch, aber sie läßt sich ansatzweise verwenden. Der Reihe nach:
Socke hat geschrieben:Delphi-Laie hat geschrieben:Also, FPC und Lazarus nutzen unterschiedliche Codierungen. Welche Codierung überhaupt infrage kommt, wenn man mit Lazarus ein Formularprogramm schreibt und dieses vom Unterbau FPC dann compiliert wird, ist nicht klar.
Für grafische LCL-Anwendungen solltest du deine Quelltexte in UTF-8 speichern
Davon lese ich immer und immer wieder gerade in diesem Forum. Doch was zum Teufel hat die Codierung des Quelltextes (!) mit einer fehlenden Funktion eines Compilates (die ihm eben durch die Compilierung nicht mitgegeben wurden) zu tun?
Socke hat geschrieben:und alle Zeichenketten als ganz normale Ansistrings deklarieren.
Ich versuchte schon alles mögliche: AnsiString, WideString....
Socke hat geschrieben:Immer wenn du mit der RTL arbeitest, kannst du entweder einige Wrapper-Funktionen aus der LCL-Unit FileUtil (für Dateizugriff) verwenden
Was sind "Wrapper-Funktionen", und wieso kann ich "einige" verwenden? Ich suche nur eine Funktion, und zwar die, die obiges ermöglichst. Verstehe ich nicht.
Socke hat geschrieben:oder du wandelst alles manuell aus der Unit LCLProc mit
UTF8ToSys() bzw.
SysToUTF8() um.
Manuell? Immerhin finde ich dieser Deiner Zeile erstmalig einen Unitnamen und - anscheinend - Funktionsnamen, die die gesuchte Funktionalität bieten könnten.
Socke hat geschrieben:Da die RTL unter Windows aber noch alte ANSI-API-Funktionen verwendet, kannst du zur Zeit nur mit direkten API-Aufrufen die volle Unicodeunterstützung von Windows herausholen. Ansonsten bleibst du immer auf einen Single-Byte-Zeichensatz beschränkt (welcher das ist hängt soweit ich weiß von den Benutzereinstellungen ab).
API? Die Funktion "SysErrorMessage" bedient sich doch auch nur der API-Funktion "FormatMessageA". Den Quelltext von SysErrorMessage von FPC und von Delphi ausprobiert, modifiziert, wieder ausprobiert.
Vielversprechend scheint auch
das hier zu sein.
Alles in allem: Ich danke Dir für Deine Mühe, aber Hilfe in engeren Sinne, also was einem wirklich weiterbringt, muß ich auch aus Deinem Fleiß mühsam extrahieren, wie überhaupt alles, was ich bisher in diesem Forum fand. Ich komme mir wie ein Archäologe vor.
Update: Des Rätsels (erste und noch nicht sonderlich schöne, vielleicht noch verbesserbare) Lösung ist
War es sooo kompliziert, mir das mitzuteilen?
Dank und Grüße
Delphi-Laie
Edit 1: Dein oben angegebenes
sowie außerdem
funktionieren genauso wie meine erste Lösung.