Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Delphi - DateTimePicker - zadávanie dátumu a času naraz

Prepáč, ale tvoje riešenie sa mi veľmi nepáčilo, keďže na čas je komponenta DateTimePicker a mala by sa vlastne použiť tá. No, tak som skúsil nájsť riešenie sám a skončilo to takto:

TForm.OnCreate

  dtpDateFrom.DateTime := Today;
  dtpTimeFrom.DateTime := dtpDateFrom.DateTime;
  dtpDateTo.DateTime := dtpDateFrom.DateTime;
  dtpTimeTo.DateTime := dtpTimeFrom.DateTime;

TForm.DateTimePickerChange - nastaviť na všetky 4 túto metódu
begin
  dtpDateFrom.DateTime := Int(dtpDateFrom.DateTime)
   + dtpTimeFrom.DateTime - Int(dtpTimeFrom.DateTime);
  dtpDateTo.DateTime := Int(dtpDateTo.DateTime)
   + dtpTimeTo.DateTime - Int(dtpTimeTo.DateTime);
  if dtpDateFrom.DateTime > dtpDateTo.DateTime then
    begin
      if ((Sender as TDateTimePicker) = dtpDateFrom)
       or ((Sender as TDateTimePicker) = dtpTimeFrom) then
        begin
          dtpDateTo.DateTime := dtpDateFrom.DateTime;
          dtpTimeTo.DateTime := dtpDateFrom.DateTime;
        end;
      if ((Sender as TDateTimePicker) = dtpDateTo)
       or ((Sender as TDateTimePicker) = dtpTimeTo) then
        begin
          dtpDateFrom.DateTime := dtpDateTo.DateTime;
          dtpTimeFrom.DateTime := dtpTimeTo.DateTime;
        end;
    end;
end;

No a časy sú v tým komponentách, ktoré majú v názve Date. Tie s názvom Time nemajú presný čas v prípade, že nedojde k stretnutiu časov, pretože časy sa preratúvajú len do do prvých dvoch komponent (prvé dva príkazy za begin).

Edit: Neexistuje protiklad k funkcii Int? Ide o to, že potrebujem odrezať desatinnú časť, pracovať s ňou a celú časť zahodiť. Na počítačoch Sharp MZ-800 na to bol v BASICu príkaz FRAC(). Potrebujem to na prvé dva príkazy za begin na odrezanie času z DateTime.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny