フォーカス移動

解決


SKJP  2004-08-27 21:21:56  No: 10636  IP: [192.*.*.*]

procedure TInitializedDlg.a_EditKeyPress(Sender: TObject; var Key: Char);
begin
    // 数字とバックスペースキーと処々のキー以外無視する
  if ((Pos(Key,'0123456789')=0) and     // 数字
     (Ord(Key) <> VK_BACK) and          // バックスペース
     (Key <> #13)) then                 // エンターキー
  begin
    Key := #0; //無視する
  end else if(Key = #13)then
  begin
    SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
    Key := #0;
  end;
end;
--------------------------------------------------
上記のようにEnterキーを押すと移動するように作成したのですが、
Enterを押しても”if(Key = #13)then”以降が全く反応しません。
ちまにみフォームはダイアログです。
どなたか回答できる方いましたら、宜しくお願いします。

編集    削除
TtPIPICH  2004-08-27 22:25:08  No: 10637  IP: [192.*.*.*]

実行されていますよ。

編集    削除
SKJP  2004-08-27 22:49:11  No: 10638  IP: [192.*.*.*]

そのはずなのですが、反応しないんですよ。
ちなみに、

[省略]

if ((Pos(Key,'0123456789')=0) and     // 数字
     (Ord(Key) <> VK_BACK) and          // バックスペース
     (Key <> #13)) then                 // エンターキー
  begin
    ShowMessage('NG');
    Key := #0; //無視する

[省略]

とすると、”NG"は表示されるのですが、Enterキーだけが反応しないんですよ。

編集    削除
LupinⅢ  URL  2004-08-27 23:00:05  No: 10639  IP: [192.*.*.*]

条件がおかしいのではないでしょうか

編集    削除
LupinⅢ  URL  2004-08-27 23:00:58  No: 10640  IP: [192.*.*.*]

and -> or

編集    削除
SKJP  2004-08-27 23:07:31  No: 10641  IP: [192.*.*.*]

いえ、他のユニットでは上記のコードで正確に動作するのですが。。

編集    削除
LupinⅢ  URL  2004-08-27 23:11:49  No: 10642  IP: [192.*.*.*]

このようにしてはどうでしょう?

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
    // 数字とバックスペースキーと処々のキー以外無視する
  if ((Pos(Key,'0123456789')=0) and     // 数字
     (Ord(Key) <> VK_BACK) and          // バックスペース
     (Key <> #13)) then  begin               // エンターキー
     Key := #0; //無視する
  end;

  if(Key = #13)then begin
    SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
    Key := #0;
  end;
end;

編集    削除
SKJP  2004-08-27 23:23:17  No: 10643  IP: [192.*.*.*]

LupinⅢ様へ

私のミス(?)でした。
ダイアログフォームのプロパティの設定を変更したら動作しました。

次の通りです。

[初期設定]
Default ⇒ true

[変更後]
Default ⇒ false

なぜこれだと動作するかは未確認ですが。。

TtPIPICH様、LupinⅢ様、貴重な時間を割いていただいてありがとうございました。

編集    削除