Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> календарь TDataTimePicker, Как открыть встроенный календарь? 
:(
    Опции темы
Sharl
Дата 20.11.2004, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 16.8.2003

Репутация: нет
Всего: нет



На форме имеем две компонента TDateTimePicker и TButton

В DateTimePicker выбран
Код

DateMode := dmComboBox;
Kind := dtkDate;



Как можно при клике на Button открыть и показать встроенный календарь DateTimePicker-а ?

Это сообщение отредактировал(а) Sharl - 20.11.2004, 09:27
PM MAIL   Вверх
Alex
Дата 20.11.2004, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Код

procedure TForm1.Button2Click(Sender: TObject);
var
 msg: tagEVENTMSG;
begin
 msg.message:=  WM_LBUTTONDOWN;
 msg.paramL:=DateTimePicker1.Height div 2;
 msg.paramH:= DateTimePicker1.Width - 5;
 msg.hwnd:=DateTimePicker1.Handle;
 DateTimePicker1.DefaultHandler(msg);
end;



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Sharl
Дата 20.11.2004, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 16.8.2003

Репутация: нет
Всего: нет



Во-первых, спасибо за ответ.
Но есть одно но...
Когда нажимаем на кнопку, далее мышкой передвигаемся на кнопку-стрелку, предназначенную для изменения месяца, но не нажимаем на нее. Почему-то кнопка нажимается сама и листает месяцы.
Такое впечатление, что мишка осталась нажатой.
Если так, то как можно выйти из этого?
Я кстати получл то же самое с помощью

Код


procedure TForm1.Button2Click(Sender: TObject);
begin
 DateTimePicker1.Perform( WM_LBUTTONDOWN, 0,DateTimePicker1.Width-5);
end;






PM MAIL   Вверх
Alex
Дата 20.11.2004, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Так, вот рабочий код:
Код

var
 Pos: TPoint;
begin
 Pos:= Mouse.CursorPos;
 try
   ShowCursor(False);
   with DateTimePicker1 do begin
     Mouse.CursorPos := ClientToScreen(Point(Width - 10, 10));
     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
     mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
   end
 finally
   Mouse.CursorPos:= Pos;
   ShowCursor(True)
 end;



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Sharl
Дата 20.11.2004, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 16.8.2003

Репутация: нет
Всего: нет



Ok.
Решение не только рабочее, но и мне кажется во многом учебное.

Большое спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0630 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.