Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie mache ich ae aus ä während der Eingabe in TEdit (https://www.delphipraxis.net/50068-wie-mache-ich-ae-aus-ae-waehrend-der-eingabe-tedit.html)

torud 20. Jul 2005 10:20


Wie mache ich ae aus ä während der Eingabe in TEdit
 
Hallo Leute!

Ich möchte während der Eingabe eines Users die Umlaute abfangen und direkt aus einem ä ein ae machen. Leider geht das nicht so einfach. Aus einem Leerzeichen einen Underline zu machen ist kein Problem aber ich glaube das man bei einer OnKeyPress-Routine nicht 2 Chars aus einem machen kann. Wie kann ich das lösen?

Delphi-Quellcode:
procedure Teditor.ed_feldnameKeyPress(Sender: TObject; var Key: Char);
const
  AllowedChars : string = 'ABCDEFGHIJKLMNOPQ'+'RSTUVWXYZ'+'abcdefghijklmnopq' + 'rßstuvwxyz01234567_';
var
  i : Integer;
  Ok : Boolean;
begin
  i := 0;
  Ok := false;
  if Key = #32 then Key := '_'; //funzt gut
  if Key = 'ä' then Key := 'ae'; //funzt leider nicht
  if Key = #8 then Ok := true;
  repeat
    i := i + 1;
    if Key = AllowedChars[i] then Ok := true;
  until (Ok) or (i = Length(AllowedChars));
  if not Ok then Key := #0;
end;

DGL-luke 20. Jul 2005 10:24

Re: Wie mache ich ae aus ä während der Eingabe in TEdit
 
Delphi-Quellcode:
if key='ä' then edit1.text:=replacestring(edit1.text,'ä','ae',[rfreplaceall])

Sharky 20. Jul 2005 10:48

Re: Wie mache ich ae aus ä während der Eingabe in TEdit
 
Hai,

mal so auf die schnelle:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = 'ä') then
  begin
    Key := #0;
    Edit1.SelText := 'ae';
  end;
end;
Das ganze müsste man halt nur noch für die Verschiedenen Möglichkeiten optimieren ;-)
Das Enscheidende ist wohl die Verwendung von Delphi-Referenz durchsuchenSelText.

mr.unbekannt 20. Jul 2005 11:02

Re: Wie mache ich ae aus ä während der Eingabe in TEdit
 
probiere mal die nummern: #132 oder #228, ich denke es ist eher die zweite nummer, aus dem ascii code entnommen, weil #32 = ' '.

torud 20. Jul 2005 11:05

Re: Wie mache ich ae aus ä während der Eingabe in TEdit
 
Hallo Stephan!

So funktionierts einwandfrei!

turboPASCAL 20. Jul 2005 11:11

Re: Wie mache ich ae aus ä während der Eingabe in TEdit
 
Würde ich auch mal anschauen: AnsiInspect

torud 20. Jul 2005 11:14

Re: Wie mache ich ae aus ä während der Eingabe in TEdit
 
Auch ne ganz nette Lösung!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz