Sorun, tarih saat seçici denetiminin geçerli tarihle başlatılıyor olmasıdır. Ve bu ayın bir ayı için geçersiz olan bir günü de içerir.
Sadece açık olmak gerekirse, 29 Ocak 2013'te bu soruyu soruyorsunuz. Yukarı/aşağı kontrolünü Şubat'a geçmek için tıklattığınızda, denetim 29 Şubat'ta olmadığı için değişikliği gerçekleştiremiyor. 2013 zor çoğaltmak bulmak herhangi gelecek ziyaretçiler için
, bu sorunu göstermesi gerekir kodudur:
DateTimePicker1.Format := 'MMM-yyyy';
DateTimePicker1.DateMode := dmUpDown;
DateTimePicker1.DateTime := EncodeDateTime(2013, 1, 29, 0, 0, 0, 0);
sorun için basit bir düzeltme emin olduğunu DateTime
mülkiyet için Kontrol ayın başlangıcı içindir. Eğer kontrol initialize zaman bu kodu yürüterek elde edebilirsiniz:
DateTimePicker1.DateTime := StartOfTheMonth(DateTimePicker1.DateTime);
Veya belki de daha açık olmasını istiyorsanız:
DateTimePicker1.DateTime := StartOfTheMonth(Date);
StartOfTheMonth
yardımcı işlevi DateUtils
biriminde bulunur.
Neden bu biçim? Bir tarih seçicide, bir gün de seçmeyi beklerdim. Aksi takdirde, belki iki normal düşüş de kolay olurdu. – GolezTrol
@GolezTrol: Bu bir bakım kodudur. Bu formatı değiştiremiyorum. – CyprUS
@to all: Bazı hata ayıklama yaptım ve tarih değerinin değişmediğini gördüm. böylece feb ayında, tarih hala 29 idi. Ama bunu önlemek için ne yapıyorum? – CyprUS