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

Очистить дату в TDateTimePicker

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

Очистить дату в TDateTimePicker

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

{ 
 Use the DateTime_SetFormat API macro (put CommCtrl in the uses clause) to set 
 the date to blank or a message. 

 Then in the DateTimePicker OnCloseUp event handler set the format to what you 
 want when a date has been selected, and the DTP will show the selected date. 

 Attach an OnClick handler if you want it to open when you 
 click on the edit control. 
}

 { 
 Verwende das DateTime_SetFormat API Makro von der CommCtrl Unit, um den TDateTimePicker 
 anfangs leer anzuzeigen oder um einen beliebigen String zu setzen. 

 Wenn das OnCloseUp Ereignis vom TDateTimePicker aufgerufen wird, kannst du ein 
 beliebiges Datums-Format setzen und der DateTimePicker zeigt es dann an. 

 Damit man mit einem Click auf das Edit-Control den TDateTimePicker цffnen kann, kann man 
 zusдtzlich einen OnClick Handler hinzufьgen, wo man dann den TDateTimePicker цffnet. 
}

 uses
   CommCtrl;

 var
   FDTMDateEmpty: Boolean;

 procedure TForm1.FormCreate(Sender: TObject);
 begin
   DateTime_SetFormat(DateTimePicker1.Handle,  '''Choose a date''');
   FDTMDateEmpty := True;
 end;

 procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
 begin
   DateTime_SetFormat(DateTimePicker1.Handle,  PChar('dd.MM.yy'));
 end;

 procedure TForm1.DateTimePicker1Click(Sender: TObject);
 begin
   if FDTMDateEmpty then
   begin
     DateTimePicker1.Perform(WM_KEYDOWN, VK_F4, 0);
     DateTimePicker1.Perform(WM_KEYUP, VK_F4, 0);
   end;
 end;

 procedure TForm1.DateTimePicker1Change(Sender: TObject);
 begin
   FDTMDateEmpty := False;
 end;

Перевод контента на русский язык:

Код написан на Delphi и используется для настройки поведения компонента TDateTimePicker. Цель - очистить датуinitially, отображать custom сообщение или пустое поле, когда дата не выбрана, и форматировать отображаемую дату.

Вот разбивка того, что каждый часть кода делает:

  1. В обработчике события FormCreate, он использует макро-API DateTime_SetFormat из единицы CommCtrl для установки текста компонента TDateTimePicker на 'Choose a date'. Он также устанавливает булевую переменную FDTMDateEmpty в значение True.

  2. В обработчике события DateTimePicker1CloseUp, когда пользователь выбирает дату, он изменяет формат отображаемой даты на dd.MM.yy.

  3. В обработчике события DateTimePicker1Click, когда пользователь кликает по редактируемому контролу компонента TDateTimePicker, он имитирует нажатие и отпускание клавиши F4 (обычно используемой для открытия календаря для TDateTimePicker). Это вызывает появление календаря.

  4. В обработчике события DateTimePicker1Change, когда изменяется выбор даты (например, выбирается новая дата), он устанавливает FDTMDateEmpty в значение False, указывая, что дата была выбрана.

Вот улучшенная версия кода с комментариями и минимальными изменениями:

uses
  CommCtrl;

var
  FDTMDateEmpty: Boolean;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Установка текста компонента TDateTimePicker на 'Choose a date'
  DateTime_SetFormat(DateTimePicker1.Handle, PChar('Choose a date'));
  FDTMDateEmpty := True;
end;

procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
begin
  // Форматирование отображаемой даты в dd.MM.yy при выборе даты
  DateTime_SetFormat(DateTimePicker1.Handle, PChar('dd.MM.yy'));
end;

procedure TForm1.DateTimePicker1Click(Sender: TObject);
begin
  // Имитация нажатия и отпускания клавиши F4 для открытия календаря
  if FDTMDateEmpty then
  begin
    DateTimePicker1.Perform(WM_KEYDOWN, VK_F4, 0);
    DateTimePicker1.Perform(WM_KEYUP, VK_F4, 0);
  end;
end;

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
  // Установка FDTMDateEmpty в False при выборе даты
  FDTMDateEmpty := False;
end;

В этой улучшенной версии я добавил комментарии, чтобы объяснить, что каждый часть кода делает. Я также реформатировал код, чтобы сделать его более читаемым и согласованным с рекомендациями по стилю кодирования Delphi.

Очищение даты в TDateTimePicker можно выполнить с помощью API-макра DateTime_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 05:50:29/0.0035190582275391/0