tEdit erhält chinesische Schriftzeichen als default
-
- Beiträge: 142
- Registriert: Sa 30. Jan 2010, 19:35
- OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
- CPU-Target: xxBit
tEdit erhält chinesische Schriftzeichen als default
Hallo,
in einem größeren portierten Programm von mir habe ich einen merkwürdigen Effekt. tEdit, tCombobox, tGroupbox und tMemo erhalten alle grundsätzlich zur Laufzeit immer 10 chinesische Schriftzeichen als caption/text default, egal was ich im Resourceneditor unter Caption bzw. Text eintrage. Im Resourceneditor erscheint der gewünschte Default Wert wie gewüscht. Ein Mini-Beispielsprogramm funktioniert eintwandfrei. Ich weiß momentan gar nicht, wo ich da suchen könnte. Es sind alles immer die selben 10 Zeichen, und bei tMemo erscheint dann weiterer normal lesbarer von mir gewollter Text mit tMemo.Add dahinter. Ich habe mir vor ca. 1 Woche den daily build heruntergeladen (Windows 32).
Danke für jeden Hinweis
in einem größeren portierten Programm von mir habe ich einen merkwürdigen Effekt. tEdit, tCombobox, tGroupbox und tMemo erhalten alle grundsätzlich zur Laufzeit immer 10 chinesische Schriftzeichen als caption/text default, egal was ich im Resourceneditor unter Caption bzw. Text eintrage. Im Resourceneditor erscheint der gewünschte Default Wert wie gewüscht. Ein Mini-Beispielsprogramm funktioniert eintwandfrei. Ich weiß momentan gar nicht, wo ich da suchen könnte. Es sind alles immer die selben 10 Zeichen, und bei tMemo erscheint dann weiterer normal lesbarer von mir gewollter Text mit tMemo.Add dahinter. Ich habe mir vor ca. 1 Woche den daily build heruntergeladen (Windows 32).
Danke für jeden Hinweis
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: tEdit erhält chinesische Schriftzeichen als default
Martin V hat geschrieben:Hallo,
in einem größeren portierten Programm von mir habe ich einen merkwürdigen Effekt. tEdit, tCombobox, tGroupbox und tMemo erhalten alle grundsätzlich zur Laufzeit immer 10 chinesische Schriftzeichen als caption/text default, egal was ich im Resourceneditor unter Caption bzw. Text eintrage. Im Resourceneditor erscheint der gewünschte Default Wert wie gewüscht. Ein Mini-Beispielsprogramm funktioniert eintwandfrei. Ich weiß momentan gar nicht, wo ich da suchen könnte. Es sind alles immer die selben 10 Zeichen, und bei tMemo erscheint dann weiterer normal lesbarer von mir gewollter Text mit tMemo.Add dahinter. Ich habe mir vor ca. 1 Woche den daily build heruntergeladen (Windows 32).
Danke für jeden Hinweis



kann i mir zwar nur schwer vorstellen, aber zugegeben. wenn i mir dein BS anschaue wundert mich wirklich nicht mehr.

nene Spaß beiseite. könnte ggf an den dayily build liegen.
Sonst auf jeden fall mail die Font bei den Objekten durchschauen, ob da was chinesische eigetragen wurde, zumal von irgenwas muß es die werte ja lagen.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Beiträge: 475
- Registriert: Do 15. Nov 2007, 16:58
- OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
- CPU-Target: i386, x64
- Wohnort: Gera
Re: tEdit erhält chinesische Schriftzeichen als default
Das könnte ein Problem mit der Kodierung deiner Quelltexte sein. Schau mal unter "Werkzeuge/Kodierung von Projekten/Packages konvertieren".
mfg Ingo
-
- Beiträge: 142
- Registriert: Sa 30. Jan 2010, 19:35
- OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
- CPU-Target: xxBit
Re: tEdit erhält chinesische Schriftzeichen als default
>Das könnte ein Problem mit der Kodierung deiner Quelltexte sein
Ich habe im Programm gar keine Zuweisungen. Nach einer Zuweisung ist der chinesische Default-Eintrag weg und alles wieder OK.
Mir ist schon klar, dass man bei Zuweisungen aufassen muss, denn intern verwendet Lazarus UTF-8, bei dem Umlaute mit zwei bis drei bytes dargestellt werden.
Wenn nicht jemand noch eine bessere Idee hat, werde ich wohl einen neuen daily build holen.
P.S. Das OS "Winux" ist nicht von mir eingetragen gewesen. Ich benutze Win32, Ubuntu und MacOS 10.6.
Ich habe im Programm gar keine Zuweisungen. Nach einer Zuweisung ist der chinesische Default-Eintrag weg und alles wieder OK.
Mir ist schon klar, dass man bei Zuweisungen aufassen muss, denn intern verwendet Lazarus UTF-8, bei dem Umlaute mit zwei bis drei bytes dargestellt werden.
Wenn nicht jemand noch eine bessere Idee hat, werde ich wohl einen neuen daily build holen.
P.S. Das OS "Winux" ist nicht von mir eingetragen gewesen. Ich benutze Win32, Ubuntu und MacOS 10.6.
-
- Beiträge: 475
- Registriert: Do 15. Nov 2007, 16:58
- OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
- CPU-Target: i386, x64
- Wohnort: Gera
Re: tEdit erhält chinesische Schriftzeichen als default
Unter Quelltext zähle ich auch die .lfm die die Informationen deiner Form und Komponenten beinhaltet. Hast du mal geguckt unter Werkzeuge/Kodierung... ? Wenn die Vorschau leer ist sollte alles passen, wenn sie nicht leer ist, sind die angezeigten Dateien nicht UTF8.Martin V hat geschrieben:Ich habe im Programm gar keine Zuweisungen.
Oder anders gefragt, sind die chinesischen Zeichen auch bei einem neuen Projekt?
Das kannst du in deinem Profil anpassen.Martin V hat geschrieben:P.S. Das OS "Winux" ist nicht von mir eingetragen gewesen. Ich benutze Win32, Ubuntu und MacOS 10.6.
mfg Ingo
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: tEdit erhält chinesische Schriftzeichen als default
Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
ist einfach nur der standartwert wenn noch nichts geändert wurde Winux = Win + (Lin)ux...
CPU-Target: xxBit
ist einfach nur der standartwert wenn noch nichts geändert wurde Winux = Win + (Lin)ux...
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 142
- Registriert: Sa 30. Jan 2010, 19:35
- OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
- CPU-Target: xxBit
Re: tEdit erhält chinesische Schriftzeichen als default
Ich habe nun selbst die Lösung gefunden.
An einer ganz anderen Stelle des Programms habe ich einen Windows-Funktionsaufruf, der einen String zurückgibt. Für diesen Rückgabestring habe ich vergessen, den Speicher zu reservieren, also array[0..1000] of char statt einen Pointer. Dann schreibt Windows - ohne Programmabsturz - den String irgendwohin und überschreibt wichtige Speicherbereiche, in denen in diesem Fall eben irgendwelche LCL-Einstellungen waren. Das Programm läuft dann ohne weitere Warnung Amok.
An einer ganz anderen Stelle des Programms habe ich einen Windows-Funktionsaufruf, der einen String zurückgibt. Für diesen Rückgabestring habe ich vergessen, den Speicher zu reservieren, also array[0..1000] of char statt einen Pointer. Dann schreibt Windows - ohne Programmabsturz - den String irgendwohin und überschreibt wichtige Speicherbereiche, in denen in diesem Fall eben irgendwelche LCL-Einstellungen waren. Das Programm läuft dann ohne weitere Warnung Amok.