Blokada wyboru dat w DateTimePicker.

0

Witam,
mam dwa komponenty DateTimePicker.
W pierwszym DateTimePicker1 użytkownik wybiera datę.
W drugim DateTimePicker2 chcę aby użytkownik mógł wybrać jedynie datę nie mniejszą od tej z DateTimePicker1(jakieś wyszarzenie mniejszych dat - coś w tym rodzaju).

Istnieje taka możliwość?
Proszę o pomoc.

3

@dam1an: po co podajesz kod w innym języku, skoro pytanie jest o Delphi. Ogarnij się.

@lukasz_p92: według mnie, nie ma takiej możliwości żeby na standardowym TDateTimePicker coś wyszarzyć. Ale można po wybraniu daty sprawdzić to czy jest ona wyższa od tamtej z innego Pickera. I reagować komunikatem, przywracając domyslną datę. Dodatkowo obok tego drugiego Pickera ja po prostu dałbym jakiś TLabel / TGroupBox itp - z informacją. ze program oczekuje takiego rodzaju daty.

0

Przy Ustaleniu

 DateTimePicker1.MinDate

otrzymuję niepożądany komunikat:
,,Date is less than minimum of 20-01-2015."
Można go jakoś ukryć/wyłączyć?

3

Leci wyjątek, możesz go sobie obsłużyć jak chcesz np. tak

  try 
    DateTimePicker1.Date := Now -7
  except
    beep;
  end;
0

Wszystko działa, lecz gdy klikam na rekord w DBGrid (posiadam tam daty w kolumnie) z datą mniejsza od tej którą określiłem w

dateTimePicker2.MinDate:=TRUNC(DateTimePicker1.Date);  

nie chce się wyświetlić.
Po zapisaniu rekordu zmieniłem

DateTimePicker2.MinDate:=0  

, lecz nic nie dało.
Teraz w DateTimePicker wyświetla jedynie daty większe...

Jakiś pomysł dlaczego tak się dzieje ?

3

a tak?

   DateTimePicker1.MinDate := MinDateTime;
0

Dzięki, o to chodziło.

0

A może ktoś słyszał coś o ustaleniu minimalnego czasu w DateTimePicker?

2

Ale co tutaj "słyszeć"? Po prostu zakodź sobie sprawdzanie dla TDateTimePicker z Kind na dtkTime.

procedure TForm1.DateTimePicker1Change(Sender : TObject);
var
  MinTime : TTime;
  DTP : TDateTimePicker;
begin
  DTP := TDateTimePicker(Sender);
  MinTime := EncodeTime(09, 00, 00, 00);
  if DTP <> nil then
  begin
    DTP.Date := 0;
    if DTP.Time < MinTime then
    begin
      DTP.Time := MinTime;
    end;
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1