Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Ö,ä,ü Anzeigeproblem


rokdd - Do 12.02.04 00:22
Titel: Ö,ä,ü Anzeigeproblem
hallo,
ich weiß dass mein problem nicht neu ist, aber es ist schwer zu beschreiben und damit in einer Suche zu finden. In einem Tstringgrid wird der text mit ö,ä,ü angezeigt. übernehme ich den text in eine tmemo oder tedit so wird der
buchstabe fehlerhaft angezeigt! der anzuzeigende text kommt aus einem array. ich habe zur lösung folgende ansätze:

a) Immer Oe,.. schreiben:finde ich blöd behindert user
b) prüfen des tstringgrids auf ö,a,ü und umwandeln in oe,... (und wieder möglicherweise zurück): zu aufwendig
c) das tedit und tmemo dazu zu bringen diese anzunehmen: keine ahnung wie!

Gibt bestimmt noch viele möglichkeiten. aber welche ist die beste??? und habt ihr eine lösung für c) ?
Danke!

Rokdd


Delete - Do 12.02.04 00:52

Wie übernimmst du den Text in ein Memo oder Edit?


rokdd - Do 12.02.04 09:41

sorry!
stimmt habe ich vergessen: die daten dazu kommen aus einem array!

Rokdd


Delete - Do 12.02.04 10:59

Kannst du mal ein Beispiel zeigen? Ich wüsste nicht, warum Memo oder TEdit keine Umlaute akzeptieren sollten.


rokdd - Do 12.02.04 11:17

okay habe ein auszug wo der fehler vorkommt. datenquelle ist aber kein array, sondern ein string. angezeigt wird das mit tlabel:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
function tfrm_main.alerting(captiont,textt:string;t1,t2:string;ic:integer):boolean;
    begin
    with frm_alert do begin
    c_ic:=ic;
    c_caption:=captiont;
    lbl_text.caption:=textt;


Hoffe das hilft!


Rokdd


Delete - Do 12.02.04 20:39

Nicht wirklich, denn dieses Codestückchen sagt noch nichts über die übergebenen Strings aus, usw. Könntest du folgendes erläutern:
Zitat:
In einem Tstringgrid wird der text mit ö,ä,ü angezeigt. übernehme ich den text in eine tmemo oder tedit so wird der buchstabe fehlerhaft angezeigt!

So weit komme ich mit. Das Stringgrid zeigt die Umlaute korrekt an, aber sobald du sie im Memo oder Edit darstellen lässt, passt es nicht mehr. Überprüf doch mal die Schriftart im Memo/Edit. Evtl. hat die ein Problem damit.

Zitat:
der anzuzeigende text kommt aus einem array.

Oder der besagte Text aus dem Array ist vielleicht im "alten DOS-Format".

Auf Verdacht verweise ich dich mal an Microsofts MSDN [http://msdn.microsoft.com], wo du mal nach CharToOem und OemToChar suchen kannst. Ich stand mal vor einem ähnlichen Problem. Also, ob´s den gleichen Grund hatte, weiß ich natürlich nicht, aber ich hatte auch mal Schwierigkeiten bei der Anzeige von Umlauten. Aber mit beiden Funktionen ließ sich das lösen.


rokdd - Do 12.02.04 22:32

hallo,
also ich will nochmal erläutern(habe mich auch blöd und ungenau ausgedrückt!). in ein tstringgrid und ein tedit/tmemo beziehen ihren text aus einem array. im tstinggrid wird das ä,ö,ü angezeigt und in den anderen 2 nicht. Auch ChartoOem hat nicht geholfen. die zeichen wurden nur verrückter...
Die Schriftart habe ich auch geprüft, sowohl mit Arial als auch mit MS Sans Serif kommt der fehler.
trotzdem schon mal danke!

Rokdd


rokdd - Sa 14.02.04 15:57

wahrscheinlich ist bei mir irgendwas in den einstellungen verstellt denn wenn ich im objectinspektor caption einer tlabel eingebe kommt auf dem bildschirm schon so ein komischer strich statt dem ö.


rokdd