初めて質問をします。
数字キー[0〜9]で他のフォームを表示し、そのフォームの中にあるEditに押された数字キーを反映する様にしたいのですが、よく分かりません。
他のフォームを呼び出す事は出来るのですが、それをメインのフォームのkeypressメソッドに書き込んでも実行しても上手く動きません。
ちなみに文は次の様にしています。
if Key in ['0'..'9'] then (他のフォームを呼び出す命令);
何か良い解決方法を教えてください。
宜しくお願いします。
うまく行かないというもはどういう状態なのでしょうか.
私のところでは,ちゃんと0〜9のキーを押すと,別のFormが表示さ
れます.
フォーム上で0〜9のボタンを押してもまったく変化がありません
Mr.XRAYさんの所ではちゃんと表示されるようですね
どういったプログラムが見せて下さいませんか?
>どういったプログラムが見せて下さいませんか?
TTさんはとんなコードなんですか.
数字キーで他のフォームを呼び出そうとしている所は、
procedure Tfrm_main.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key in ['0'..'9'] then ShowForm(Tfrm_input);
end;
で、ShowForm(Tfrm_input)はボタンで動作させた所ちゃんと他のフォームを呼び出せます。
ちなみに、メインフォーム:frm_main 入力フォーム(呼出):frm_inputです。
私のテスト手順です.
(1) 新規プロジェクトを作成.このFormをForm1
(2) [ファイル][フォームの新規作成].このForm2
このFormにEditを一つ配置.
(3) Form1を表示して,[ファイル][ユニットを使う]で
unit2を選択.
(4) Form1を表示して,OnKeyPressのコードを以下とする.
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key in ['0'..'9'] then begin
Form2.Edit1.Text:=Key;
Form2.ShowModal;
end;
end;
(5) 実行して,0〜9までのどれかのキーを押す.
Form2が表示される.
以上ですよ.自分がやった手順を書かないと,どこに不具合があるのか
わかりません.このぐらいのコードでしたら,是非提示して下さいませ.
http://homepage2.nifty.com/Mr_XRAY/Links.htm
ここのメールのマナーのリンクも是非お読み下さいませ.
>if Key in ['0'..'9'] then ShowForm(Tfrm_input);
ここで,ShowForm(Tfrm_input)がボタンクリックで表示されるというこ
とは,この中身もわからないと判断できませんね.
すみませんでした。
あまり、こういった所に書き込んだ事が無いので良く分からなくて
さっそく、やってみたのですが、やはり何の変化も起きず、
メインフォームのプロパティの中で'KeyPreview'というのをTrueに設定したら動作しました。
>'KeyPreview'というのをTrueに設定したら動作しました
もしかして,メインFormの上に何か配置していませんか.
そのどれかにフォーカスがある可能性があります.
私のところでは,先程の手順ですので,何も配置していませので,
KeyPreviewはFalseのままでも動作します.
WindowsXP(SP2)+ Delphi5(UP1)
私の提示した手順でテストしましたか.折角丁寧に手順を示したのに...
>(1) 新規プロジェクトを作成.このFormをForm1
と書いてあります.
行き詰まったら単純化してテストするのが原則です.
Formに色々配置してありました
それらも提示するのが鉄則なんですね。
よく分からずいきなり質問したのにお答ありがとうございました。
TTさん,ゴメンなさい.
>ShowForm(Tfrm_input)はボタンで動作させた所ちゃんと他のフォームを呼
>出せます。
ここで,ボタンがFormに配置してあることに気づくべきでした.
まだまだ未熟なわたしです.
私の発言で,不愉快な思いをさせてしまい,失礼しました.
でも解決してよかったです.
ツイート | ![]() |