みなさん、こんにちは。
Delphi XE5
DateTimePickerで月末を設定しておきたい場合で、かつ表示が年月のみにしたい場合、
(DateTimePicker1.DeteMode = dmUpDown)
var yy,mm,dd : Word;
begin
DecodeDate(Date,yy,mm,dd);
if mm = 12 then begin
inc(yy);
mm := 1;
dd := 1;
end
else begin
inc(mm);
dd := 1;
end;
DateTimePicker1.Date := EncodeDate(yy,mm,dd) - 1;
DateTimePicker1.Format := 'yyyy年MM月';
end;
とかしておけば、取りあえず目的の表示になるのですが・・・
例えば、今日(12月10日)このコードを実行すると、
2014年12月と表示されて、内部的に日付は31日になりますが、
このとき、月をDateTimePickerの▼ボタンで月を変更すると(11月とか)
EConvertErrorが発生します・・・まぁ、11月31日は無いからね・・・
表示が年月日であれば、日付が勝手に30日になるのに、なぜ年月表示では
エラーになるの?
このエラーを出さなくする方法ってありますか?
マスター 教えてくださいな。(^^;
|