文の最初の文字を大文字にする必要があります。次に、ユーザーが Eclipse でできるように編集で文字列を入力します: "android:inputType="textCapSentences"
XE5でどうすればできますか?
または、XE5 で仮想キーボードの Shift ステータスを変更する別の方法がありますか?
文の最初の文字を大文字にする必要があります。次に、ユーザーが Eclipse でできるように編集で文字列を入力します: "android:inputType="textCapSentences"
XE5でどうすればできますか?
または、XE5 で仮想キーボードの Shift ステータスを変更する別の方法がありますか?
Android クラスの
一部である定数にtextCapSentences
対応します。このクラスはインターフェイスによってラップされますが、これは Firemonkey TEdit コントロールによって直接使用されません。代わりに、Firemonkey は と呼ばれるプロキシ クラスを使用します。したがって、理論上は、EditControl にリンクされたプロキシ クラスにアクセスして、メソッドを使用して値を設定する必要があります。残念ながら、このプロキシ クラスのインスタンスは、ユニットの実装部分で定義されているクラスにカプセル化されているため、アクセスできません。したがって、私の頭に浮かぶ唯一のオプションは、次のようなイベントを使用することです:TYPE_TEXT_FLAG_CAP_SENTENCES
TextView
Androidapi.JNI.Widget.JTextView
JFMXTextEditorProxy
TYPE_TEXT_FLAG_CAP_SENTENCES
setEnterAction
TTextServiceAndroid
FMX.Platform.Android
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;