0

文の最初の文字を大文字にする必要があります。次に、ユーザーが Eclipse でできるように編集で文字列を入力します: "android:inputType="textCapSentences"

XE5でどうすればできますか?

または、XE5 で仮想キーボードの Shift ステータスを変更する別の方法がありますか?

4

1 に答える 1

2

Android クラスの 一部である定数にtextCapSentences対応します。このクラスはインターフェイスによってラップされますが、これは Firemonkey TEdit コントロールによって直接使用されません。代わりに、Firemonkey は と呼ばれるプロキシ クラスを使用します。したがって、理論上は、EditControl にリンクされたプロキシ クラスにアクセスして、メソッドを使用して値を設定する必要があります。残念ながら、このプロキシ クラスのインスタンスは、ユニットの実装部分で定義されているクラスにカプセル化されているため、アクセスできません。したがって、私の頭に浮かぶ唯一のオプションは、次のようなイベントを使用することです:TYPE_TEXT_FLAG_CAP_SENTENCESTextViewAndroidapi.JNI.Widget.JTextViewJFMXTextEditorProxyTYPE_TEXT_FLAG_CAP_SENTENCESsetEnterActionTTextServiceAndroidFMX.Platform.AndroidOnKeyDown

これにより、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; 
于 2013-10-15T16:10:25.990 に答える