Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Umlaute umwandeln ( ä nach ae)


Stefan Z. - Fr 16.05.03 16:08
Titel: Umlaute umwandeln ( ä nach ae)
Hallo zusammen,
Ich versuche seit Stunden das Umwandeln von Umlauten zu realisieren, schaffe es aber nicht !!!

Was will ich:
Wen ich in einem Eingabefeld (Memo,Edit) z.B die Taste 'ä' drücke, so soll 'ae' zurückgegeben werden.

Wenn es um einzelne Zeichen geht, ist das ja kein Problem, dann nutze ich das OnKeyPress Ereignis. Aber 'ae' ist ja leider klein char, sonder ein string und das funzt leider nicht :evil:
Kann mir jemand helfen, wäre super nett, :lol:
Stefan


matze - Fr 16.05.03 16:14

wir hatten hier erst kürzlich ein topic über stringreplace. such mal danach da kannst du sachen in einem string durch einen adren erstezten. das einfach in das onChange des Edits rein und feddich !


Stefan Z. - Fr 16.05.03 16:25

ahhh, ich verstehe, was gemeint ist, werd mal nach dem Post suchen, danke, schonmal, manchmal ist es echt einfacher, wie man denk, :lol:

Danke,
Stefan


matze - Fr 16.05.03 19:00

kein problem. immer wieder gern


Christian S. - Fr 16.05.03 19:03

Oder so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if key = 'ä' then
 begin
   Edit1.Text:=Edit1.Text+'ae';
   key:=#0;
   Edit1.SelStart:=Length(edit1.Text);
 end;
end;


matze - Fr 16.05.03 19:05

ist aber umständlicher als stringreplace !


Christian S. - Fr 16.05.03 19:08

Ich kenne die Methode mit dem StringReplace nicht. Bei welchem Ereignis wird das denn aufgerufen? Edit1.Text muss ja dann schon gesetzt worden sein, oder?


matze - Sa 17.05.03 11:51

ja das muss sie. du müsstest die also im OnChange aufrufen !


Christian S. - Sa 17.05.03 11:57

Hm, ich denke, das ist nicht so optimal. Zum einen finde ich, dass eine solche Ersetzung intuitiv eher in das OnKeyPress-Ereignis passt. Dort würde ich zumindest zuerst danach suchen. Zum anderen ist es nicht sehr performant, wenn man mit StringReplace arbeitet, da dann jedesmal der gesamte String durchsucht wird.


matze - Sa 17.05.03 12:01

na ja jetzt komm aber. das bisschen string, das in so einem Edit drin ist.... das wird die performance ja nicht grad in die knie zwingen oder ?

bei nem memo würd ich deine variante nehmen.


Christian S. - Sa 17.05.03 12:49

Bei einem Edit mag es wirklich kaum einen Unterschied machen (und gar keinen, den ein Mensch wahrnehmen könnte). Aber ich finde, es ist eine unsaubere Programmierweise, wenn man nicht immer den optimalen Weg geht.


matze - So 18.05.03 11:32

nja ok. hast schon recht.