Firemonkey TEdit大写

我在Android中遇到Firemonkey TEdit Uppercase问题。

码:


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

在Win32中它可以工作,但在Android中不起作用。


你必须使用ChangeTracking事件。 它工作正常

此代码适用于Android

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

此代码在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;

对于字符串使用ToUpper(文档)或AnsiUpperCase(文档)。

更新:你为什么使用OnKeyDown? 根据文档,您必须使用OnChangeTracking:“此事件提供了第一个机会来响应用户对编辑控件文本所做的修改。”

因此,在OnChangeTracking类似的东西

procedure TFormMain.Edit1ChangeTracking(Sender: TObject);
begin
  Edit1.text:= AnsiUpperCase(Edit1.text);
end;
链接地址: http://www.djcxy.com/p/60479.html

上一篇: Firemonkey TEdit Uppercase

下一篇: Post values in HTMLforms without using TwebBrowser