TDateTimePickerのドロップとクローズについて

解決


smy  2003-07-01 22:14:10  No: 3983

はじめまして、smymsと申します。
過去ログを探したのですが、見あたらなかったので、投稿します。

TDateTimePickerでKindプロパティがdtkDate、DateModeプロパティが
dmComboBoxのときになのですが、実現したい動作は下記の通りです。

①TDateTimePickerにフォーカスセットでカレンダーをドロップダウン
②そのまま変更せずにENTER押下で、カレンダーをクローズ

②は何もしなければ、その通りの動作をするのですが、
過去ログを参考にさせて頂いて下記のコーディングを行ったところ、
①はOKなのですが、②が出来なくなりました。

procedure TDateTimePicker1Enter(Sender: TObject);
begin
  SendKeys('%{DOWN}',True);
end;

両方を実現するには、上記のコーディングは適さないのでしょうか?
どなたかご教授下さい。
宜しくお願いします。


にしの  2003-07-02 01:48:55  No: 3984

SendKeysを使わずに、

  keybd_event(VK_LMENU, 0, 0, 0);
  keybd_event(VK_DOWN, 0, 0, 0);
  keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_LMENU, 0, KEYEVENTF_KEYUP, 0);

ではどうでしょう。


smyms  2003-07-02 02:59:39  No: 3985

smymsです。

>SendKeysを使わずに、
>
>  keybd_event(VK_LMENU, 0, 0, 0);
>  keybd_event(VK_DOWN, 0, 0, 0);
>  keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
>  keybd_event(VK_LMENU, 0, KEYEVENTF_KEYUP, 0);
>
>ではどうでしょう。

ありがとうございました。
上記のコーディングで上手くゆきました。

そこでもう一点ご質問です。

ENTER押下でカレンダーをクローズしたと同時に、次のコントロールにフォーカス
を移動する事は可能ででしょうか?

他のコントールでは、FormKeyPressイベントでENTER押下の場合、
下記で次コントロールにフォーカスを移動しています。

FindNextControl(Form1.ActiveControl, True, True, False).SetFocus

現在でも、ENTER押下でカレンダーをクローズした後、
再度ENTER押下でフォーカスは移りますが、クローズと同時というのは
難しいでしょうか?


Halbow  2003-07-02 03:37:30  No: 3986

Halbow です。

TDateTimePicker には OnCloseUp イベントがあるのですが
今の場合は使えないんでしょうか?


smyms  2003-07-02 18:10:21  No: 3987

>TDateTimePicker には OnCloseUp イベントがあるのですが
>今の場合は使えないんでしょうか?

おっしゃる通りでございました・・・
無知ですみません・・・
ありがとう御座いました。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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