Click MonthCalendar як ідентифікувати клацання по дню
Подія OnClick у TMonthCalendar відбувається при натисканні мишки у будь-якому місці клієнтської області календаря. А як можна дізнатися, що користувач клікнув за номером дня?
Ніхто не знає? Щось мені не вдається відловити це :-(
Дурне питання? / Ніхто не знає? / Не можна реалізувати?
При натисканні на день відповідне число вибирається (за замовчуванням синім кольором). Це властивість MonthCalendar1.date. Зчитуєш його і отримуєш день, на який натиснули.
Це я розумію :-). А якщо натиснули того ж дня, який уже був обраний? Справа в тому, що мені треба, щоб відбувалося щось на кшталт того, що реалізовано в TDateTimePicker - тобто коли користувач клікає по дню, календар закривається, а коли в іншому місці, то нічого не відбувається
Тоді можна спробувати вважати позицію миші в момент кліку і вперед або покопатися у вихідниках, де він там цю синю рамку малює. При першому варіанті будуть проблеми з тим, що клавішу миші натиснули, перевели мишу в інше місце і там відпустили.
Vlad40 (29.02.04 11:19) [4] А запам'ятати попереднє значення не доля, обов'язково для цього компонент потрібен, ну тоді зроби свого спадкоємця з такою властивістю та поведінкою. По клацанню зі старим значенням автозакриття, не забудь також додати властивість автозакриття.
Дельфі це ООП, яке включає і успадкування
Спадкоємець чи новий компонент – це зрозуміло, що можна зробити. Просто думав, що можна якось простіше - відловити будь-яке повідомлення або ще якась хитрість. Всім дякую
TMonthCalendar є спадкоємцем TCommonCalendar і має безліч цікавих приватних властивостей і функцій. В т.ч. procedure SetDate(Value: TDate); procedure SetDateTime(Value: TDateTime);
Таких не бачу, але є MsgSetDateTime