[Delphi] DateTimePicker の書式変更

DateTimePicker の書式を用途に応じて変更したくはないか?
Delphi の日付の書式は通常 LongDateFormat、ShortDateFormat 変数を変更するのだが、DateTimePicker はこの方法で変更できない。DateTimePicker には、Delphi の日付書式設定が全く効かない。
また、DateTimePicker のプロパティには、Short と Long の二通りの設定しかなく、年月だけ表示したい場合などやや柔軟性に欠ける。
従って、変更には以下の方法を使用することになる。
このときの書式には Delphi の書式ではなく、Windows の日付書式を使用することになる。また commctrl ユニットを uses 節に追加する必要がある。

※ Delphi で月をあらわす書式は "mm" だが、Windows では "MM" となる。

uses
  commctrl;

procedure ChangeDateFormat;
var
  szFormat: PChar;
begin
  szFormat := 'yyyy/MM/dd';  // Windows の日付書式
  SendMessage(DateTimePicker1.Handle, DTM_SETFORMAT, 0, longint(szFormat));
end;

コメント (0件)


くろねこ研究所
https://www.blackcat.xyz/article.php/ProgramingFAQ_del0028