DelphiXE2でタッチスクリーン対応のアプリケーションを作成しています。
のフォームがありTEdits
ます。それらをクリックすると、私が書いたプロシージャを呼び出してTTouchkeyboard
、ラベル(キャプション用)とTEdit
キーボード入力用のラベルが付いた、常に最大化された別のフォームを表示します。
私の手順(vkeyboard
は私のフォーム名ですTTouchkeyboard
):
procedure TLogin.showkeyboard(numeric,password: Boolean;
caption,value:string;Sender:TObject);
begin
if numeric then
vkeyboard.TouchKeyboard1.Layout := 'NumPad' // make the TTouchkeyboard on the form numeric or alpha
else
vkeyboard.TouchKeyboard1.Layout := 'Standard';
if password then
vkeyboard.input.PasswordChar := '*' //make the TEdit show * or normal characters
else
vkeyboard.input.PasswordChar := #0;
vkeyboard.title.Caption := caption;
vkeyboard.input.Text := value;
vkeyboard.Show;
end;
Form1.Edit1
フォームにオブジェクトを送信しようとしてvkeyboard
いますが、正しく送信する方法がわかりません。
なんで?入力フォーム()で[完了]をクリックできるようにしたいのでvkeyboard
、送信者をさかのぼって、メインフォームの編集でテキストを更新します。
procedure Tvkeyboard.sButton1Click(Sender: TObject);
begin
(temp as TEdit).Text := input.Text; // send back the text to the right object
vkeyboard.Hide;
end;
もちろん、この小さな部分は機能しませんでした...一時オブジェクトがXフォームに属することを指定する必要があると思いますか?
明確にするために、誰がプロシージャを呼び出したか、または少なくともプロシージャでそれを指定できるようにしてから、テキスト(2番目のフォームからメインフォームへ)を右側に戻したいと思いますTEdit
。