Focusを移動するには??


理恵  2003-10-03 21:12:42  No: 5072

すごく困っています..
Edit1、2をForm1に貼り付けて、
Edit1にFocusがあるときに、リターンキを押すことによって、Edit2にFocusを移動させるために、下のようなプロがラムを書きました。

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if Key=VK_RETURN then
Form1.ActiveControl:=Edit2;
end;
end.

このプログラムを実行させて、
Edit1にFocusがあるときに、リターンキを押しても
Focusが移動しないのですが

別の、Projectでまったく同じプログラムを書いて、実行すると、
うまく、Focusが移動するのですが、不思議で仕方ありません。。
どなたか教えていただけませんか??


通りすがり  2003-10-03 21:30:12  No: 5073

コードがまったく同じで、動きが違うのであれば、
コード以外になにか違いがあるのではないでしょうか?


理恵  2003-10-03 21:41:38  No: 5074

詳しく言うと、
ファイルに保存してある、あるprojectを呼び出して
そのプログラムに、Focusが移動するように、上のプログラムを追加すると
うまくいかないのですが
ほかの、Projectに上のコードを書くとうまくいくにですが

プロパティなどの設定を変えたためなのでしょうか??


LupinⅢ  URL  2003-10-03 22:05:04  No: 5075

Form1.ActiveControl:=Edit2;
↑これを↓これにすればどうでしょう?
Edit2.SetFocus;


理恵  2003-10-03 22:08:31  No: 5076

それは、試してみたのですが、
Form1.ActiveControl:=Edit2;
と、同じようの結果になりました。


とんとん  2003-10-03 22:10:28  No: 5077

Form1.KeyPreview = Trueで何かしてしまっているとか


通りすがり  2003-10-03 22:17:38  No: 5078

OnKeyDown イベントはリターンキーを押した場合にこのコードを実行しているのか
確認してみては。
IDE上で if Key=VK_RETURN then 行をブレイクポイントに設定(F5)後
実行してみると良いです。
コードを実行しているとして、その後別なイベントが発生してフォーカス移動を
無効にしているような気もしますが。


LupinⅢ  URL  2003-10-03 22:46:58  No: 5079

やはりブレークポイントを設けるか、ShowMessageで指定位置まで来ているかチェックする必要がありそうですね。
わたしも多分指定位置の処理に来ていないと思います。


マッコ  2003-10-04 00:30:36  No: 5080

オブジェクト インスペクタのOnKeyDounとの関連付けは確実ですか、
よく私は、コピーぺタで作成するとイベントの関連付けが出来てなく
よく悩まされます。


さどやま  URL  2003-10-04 07:38:45  No: 5081

回答ではなく、質問で申し訳ないのですが。

理恵さんは書かれました。

「詳しく言うと、
ファイルに保存してある、あるprojectを呼び出して
そのプログラムに、Focusが移動するように、上のプログラムを追加すると
うまくいかないのですが」

  この文の意味を次のように理解しましたが、正しいでしょうか?
①  Edit1は、project1=project1.exe にある。
②  Edit2は、project2=project2.exe にある。そのEdit2へフォーカスを移したい。

「ほかの、Projectに上のコードを書くとうまくいくのですが」
  ここでいう「ほかのProject」とは、project2のことでしょうか。
  それともproject3があるのでしょうか。

  的外れな質問だったらごめんなさい。


masayan  2003-10-04 20:54:06  No: 5082

もう解決されたかもしれませんが、メニューやアクション項目のShortCutにEnterを設定していませんか?
メニューやアクション項目のShortCutは、OnKeyDownより優先するようです。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加