2013-10-15 3 views

답변

2

TextView 안드로이드 클래스의 일부인되는 TYPE_TEXT_FLAG_CAP_SENTENCES 일정에 textCapSentences 해당합니다.이 클래스는 포장한다 Androidapi.JNI.Widget.JTextView int에 의해 erface하지만 이것은 Firemonkey TEdit 컨트롤에 의해 직접 사용되지는 않습니다. 대신 Firemonkey는 JFMXTextEditorProxy이라는 프록시 클래스를 사용합니다. 따라서 이론적으로 EditControl에 연결된 프록시 클래스에 액세스하여 메서드를 사용하여 값 TYPE_TEXT_FLAG_CAP_SENTENCES을 설정해야합니다. 불행하게도이 프록시 클래스에 대한 인스턴스는 FMX.Platform.Android 유닛의 구현 부분에 정의 된 TTextServiceAndroid 클래스에 캡슐화되어 있으므로에 액세스 할 수 없으므로 클래스에 캡슐화됩니다. 그래서 내 마음에 오는 유일한 옵션은

와 같은 OnKeyDown 이벤트를 사용하는 것입니다. 그러면 EditText의 첫 글자와 공백 문자 뒤에 대문자가됩니다.

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; 
    Shift: TShiftState); 
begin 
    if (TEdit(Sender).Text.Length=0) or ((TEdit(Sender).Text.Length>0) and TEdit(Sender).Text.EndsWith(' ')) then 
    KeyChar:=UpCase(KeyChar); 
end; 
+0

예. 나는 그런 식으로 노력했지만 그것은 나를위한 선택 사항이 아닙니다. 나는 사용자가 단어를 타이핑 할 때 첫 글자를 대문자로 볼 필요가있다. Virtual Keybord에서 "shift"를 누르는 것은 어떤 방법일까요? 나는 그것이 틀림 없다고 생각한다. – user2880885