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

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