hab noch ein Problem mit TRichMemo:
Und zwar zählen Umlaute als 2 Zeichen! D.h. wenn ich ein RichMemo habe, in dessen erster Zeile steht: "Über", dann liefert mir RichMemo.GetTextLen "5", während wenn nur "Uber" in der ersten Zeile steht, mir GetTextLen "4" liefert. Habe rumprobiert, und das ist mit allen Umlauten so.
Habe auch die Charsets Ansi und Unicode ausprobiert, ohne Effekt.
Gibt es eine Möglichkeit, diese Doppelzählung zu umgehen?
Falls nicht, wie zähle ich dann die Umlaute? Die folgende Funktion findet keinen einzigen Umlaut:
Code: Alles auswählen
function getUmlautZahl(strs: TStrings): Integer;
var i,j, zahl: Integer;
begin
zahl:= 0;
for i:= 0 to strs.Count-1 do
for j:=0 to length(strs[i])-1 do
if (copy(strs[i],j,1) = 'ä') or
(copy(strs[i],j,1) = 'ö') or
(copy(strs[i],j,1) = 'ü') or
(copy(strs[i],j,1) = 'Ä') or
(copy(strs[i],j,1) = 'Ö') or
(copy(strs[i],j,1) = 'Ü') then
inc(zahl);
result:=zahl;
end;
Ich vermute es wird nichts gefunden, weil RichMemo die Umlaute eben nicht als Umlaute, sondern als 2-Zeichenkombination führt.
Bin für jede Hilfe wie immer dankbar!
Viele Grüße, Meister0815