##質問内容
Delphiで自作のDatePickerを作ろうと思い、TEditとTButtonを配置し、ボタンをクリックするとTMonthCalendarの張り付いたフォームをポップアップ表示をするようなプログラムを作成しています。
ポップアップを表示し日付をクリックすると、日付をEditに入力しポップアップを閉じるといったところまでできたのですが、
カレンダーコンポーネントの月を選択する矢印ボタン?をクリックすることでも閉じてしまうところが現在の課題点となっています。
動き的には、カレンダーの日付部分だけクリックするとポップアップを閉じるようにし、それ以外の場所をクリックしても閉じないようにしたいです。
下記に現状のコードを記しておくので、アドバイスなどがありました、ご回答お願いします。
Delphi
1procedure TForm2.MonthCalendar1Click(Sender: TObject); 2var 3 MousePos : TPoint; 4 HitInfo : TMCHitTestInfo; 5begin 6 GetCursorPos(MousePos); 7 MousePos := MonthCalendar1.ScreenToClient(MousePos); 8 HitInfo.cbSize := SizeOf(HitInfo); 9 HitInfo.pt := MousePos; 10 11 MonthCal_HitTest(MonthCalendar1.Handle, HitInfo); 12 13 if HitInfo.uHit and MCHT_CALENDARDATE <> 0 then 14 begin 15 FDataTime := MonthCalendar1.Date; 16 Form1.Edit1.Text := FormatDateTime('yyyy年 MM月 dd日', FDataTime); 17 close; 18 end; 19end;
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。