Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Свой формат для TDateTimePicker

Delphi , Компоненты и Классы , TDateTimePicker

Свой формат для TDateTimePicker

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

uses
   ComCtrls;

 const
   DTM_SETFORMAT = $1005;

 procedure TForm1.Button1Click(Sender: TObject);
 var
   sFormat: string;
 begin
   DateTimePicker1.kind := dtkTime;

   // Don't show the seconds, Sekunden nicht anzeigen 
  SendMessage(DateTimePicker1.Handle, DTM_SETFORMAT, 0, Longint(PChar('hh:mm')));

   // To show AM/PM 
  SendMessage(DateTimePicker1.Handle, DTM_SETFORMAT, 0, Longint(PChar('hh:mm tt')));

   // 24-hour clock: Be sure to set Kind to dtkTime 
  DateTime_SetFormat(DateTimePickerTest.Handle, pChar('H:mm:ss'));

      // To show Date and Time, Datum und Zeit anzeigen 
  // Note that you can only edit the date or the time depending 
  // on the Kind (dtkTime or dtkDate). 
  SendMessage(DateTimePicker1.Handle, DTM_SETFORMAT, 0, Longint(PChar('dd/MM/yyyy hh:ss')));

   // You could also use the DateTime_SetFormat macro: 
  DateTime_SetFormat(DateTimePicker1.Handle, PChar('M/d/yyy'));

      // Instead of using the DateTime_SetFormat function, you can 
  // send a message to the control directly: 
  sFormat := 'dd-MMMM-yyyy';
   DateTimePicker1.Perform(DTM_SETFORMAT, 0, DWORD(sFormat));
 end;

 // Show the Week Number in a TDateTimePicker 

procedure DateToWeek(dtDate: TDateTime; var AWeek, AYear: Word);
 const
   FIRST_WEEKDAY: Integer = 2;
   FIRST_WEEKDATE: Integer = 4;
 var
   wMonth, wDay: Word;
 begin
   dtDate := dtDate - ((DayOfWeek(dtDate) - FIRST_WEEKDAY + 7) mod 7) + 7 - FIRST_WEEKDATE;
   DecodeDate(dtDate, AYear, wMonth, wDay);
   AWeek := (Trunc(dtDate - EncodeDate(AYear, 1, 1)) div 7) + 1;
 end;

 procedure TForm1.DateTimePicker1Change(Sender: TObject);
 var
   sFormat: string;
   wWeek, wYear: Word;
 begin
   DateToWeek(DateTimePicker1.date, wWeek, wYear);
   sFormat := 'dd/MM/yy Week:' + IntToStr(wWeek) + '';
   DateTimePicker1.Perform(DTM_SETFORMAT, 0, DWORD(sFormat));
 end;

 procedure TForm1.FormShow(Sender: TObject);
 begin
   DateTimePicker1Change(Self);
 end;

Программный код на Delphi для настройки контрола TDateTimePicker!

Код организован и легко понятен, но я добавлю некоторые дополнительные комментарии для лучшего понимания.

Настройка формата В обработчике события Button1Click демонстрируются различные способы настройки формата контрола TDateTimePicker. Используется сообщение DTM_SETFORMAT для установки строки формата. Некоторые примеры:

  • Показать время без секунд: 'hh:mm'
  • Показать AM/PM: 'hh:mm tt'
  • 24-часовой формат: 'H:mm:ss'
  • Показать дату и время: 'dd/MM/yyyy hh:mm'

Показ недели Процедура DateToWeek calculates the week number for a given date. She uses the DayOfWeek function to determine the first day of the week, then adjusts the date accordingly. В обработчике события DateTimePicker1Change вызывается эта процедура для расчета номера недели на основе текущей даты, выбранной в TDateTimePicker. Результат используется для форматирования новой строки, включая номер недели. Например: 'dd/MM/yy Week: X'

Инициализация Обработчик события FormShow вызывает обработчик события DateTimePicker1Change для настройки начального формата и отображения номера недели для текущей даты. Вот некоторые предложения:

  • Вместо вызова Perform( DT M_ SETFORMAT, ... ) можно использовать свойство FormatSettings контрола TDateTimePicker.
  • Рассмотрите использование более гибкой подхода к форматированию дат, например, библиотеки FastTemplates для строковых шаблонов.
  • Если вы хотите позволить пользователям редактировать обе дату и время, установите свойство Kind в dtkDateTime.

В целом, код выглядит хорошо, и он организован. Вы можете улучшить его еще больше, добавив более комментариев и возможно рефакторинг некоторых логических частей.

В статье описывается форматирование даты и времени в компоненте TDateTimePicker Delphi, а также примеры использования макроса DateTime_SetFormat и отправки сообщения DTM_SETFORMAT для настройки формата отображения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TDateTimePicker ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 04:57:25/0.0034070014953613/0