InputType에 "textCapSentences"델파이 XE5 설정할 수 textCapSentences "나는 내가 이클립스에서 할 수있는 것처럼 편집에서 다음 사용자 입력 문자열 문장에서 첫 글자를 대문자로 할 필요가
을 어떻게 할 수 ? XE5에
그것을 할 또는 XE5에 가상 키보드 시프트 상태를 변경할 수있는 다른 방법이 될 수있다?
InputType에 "textCapSentences"델파이 XE5 설정할 수 textCapSentences "나는 내가 이클립스에서 할 수있는 것처럼 편집에서 다음 사용자 입력 문자열 문장에서 첫 글자를 대문자로 할 필요가
을 어떻게 할 수 ? XE5에
그것을 할 또는 XE5에 가상 키보드 시프트 상태를 변경할 수있는 다른 방법이 될 수있다?
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;
예. 나는 그런 식으로 노력했지만 그것은 나를위한 선택 사항이 아닙니다. 나는 사용자가 단어를 타이핑 할 때 첫 글자를 대문자로 볼 필요가있다. Virtual Keybord에서 "shift"를 누르는 것은 어떤 방법일까요? 나는 그것이 틀림 없다고 생각한다. – user2880885