Delphi – Firemonkey TEdit Uppercase

delphidelphi-xe5delphi-xe6firemonkey

I am having problem with Firemonkey TEdit Uppercase in Android.

Code:


procedure TFormMain.Edit1KeyDown(Sender: TObject; var Key: Word;
  var KeyChar: Char; Shift: TShiftState);
begin
    KeyChar := UpCase(KeyChar);
end;

In Win32 it works but in Android it's not working.

Best Answer

You have to use ChangeTracking event. It works fine

This code works on Android

procedure TFormMain.Edit1Typing(Sender: TObject);
begin
  Edit1.Text:=AnsiUpperCase(Edit1.Text);
  Edit1.GoToTextEnd;
end;

This code works on windows:

procedure TFormMain.Edit1ChangeTracking(Sender: TObject);
var
  thetext: String;
begin
  thetext := Edit1.Text;
  Edit1.OnChangeTracking := nil;
  Edit1.Text := '';
  Edit1.Text := AnsiUpperCase(thetext);
  Edit1.OnChangeTracking := Edit1ChangeTracking;
  Edit1.GoToTextEnd;
end;
Related Topic