![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
В компоненте MHMonthCalendar не работает событие OnChange
ElDev © (2006-02-12 19:34:00)Народ помогите в MHMonthCalendar не работает OnChange, а в аналогичном MHDateTimePicker всё нормально.
пр.
Calendar.OnChange := TOnEvent(MakeMethod(Calendar, @OnChange));
avs (2006-02-21 15:18:00) [21]Если dt2.Text:=Date2StrFmt('dd.MM.yyyy',MonthCalendar1.Date); , то
MonthCalendar1.Date=0
ECM (2006-02-21 15:15:00) [22]Вообще-то надо так:
procedure TForm1.MonthCalendar1Change(Sender: PObj);
begin
dt2.Text:=Date2StrFmt('dd.MM.yyyy',MonthCalendar1. Date);
MonthCalendar1.Hide;
end;
Я не поддержал уже имеющееся в TControl свойство DateTime (а возможно надо бы)
avs (2006-02-21 14:57:00) [23]Уважаемый Евгений! Установил KolMonthCalendar D7 WinXP SP2.
Все работает, в смысле, события отрабатывыются, но при попытке
считать выбранное значение происходит следующее:
procedure TForm1.MonthCalendar1Change(Sender: PObj);
begin
dt2.Text:=Date2StrFmt('dd.MM.yyyy',MonthCalendar1.DateTime);
MonthCalendar1.Hide;
end;
(dt2 - KolEditbox)
имеем: MonthCalendar1.DateTime=-NAN
с увыжением AVS
GMax (2006-02-21 09:54:00) [24]дело скорее не в D7, а в w2ksp4
я ж написал, что просто запустил демку, не компилировал заново, а запустил из архива
ECM (2006-02-20 22:48:00) [25]Ok. Попробую завтра поставить - D7
GMax (2006-02-20 22:09:00) [26]вот скриншот EXE-шника демы. просто распаковал и запустил.
http://www.terraspace.ru/gmax/mk1.gif
и скриншот попытки загрузки демы в дельфи7
http://www.terraspace.ru/gmax/mk2.gif
w2ksp4eng
даже не знаю что и смотреть...
homm (2006-02-18 19:56:00) [27]
> скриншот для демо:
Вах!
ECM (2006-02-18 19:35:00) [28]Фуф.. доделал. Теперь вроде всё...
http://www.kolnmck.ru/files/components/controls/kolmonthcalendar.zip
58 493 (+Зеркало +Демо)
скриншот для демо:
http://www.kolnmck.ru/files/components/controls/img/demomonthcalendar.png
:))
ECM (2006-02-17 12:24:00) [29]http://www.kolnmck.ru/files/components/controls/kolmonthcalendar.zip
14 926 байт
Это первая версия ... но уже вполне рабочая... есть зеркало + пакэджи для D5,D6,D7 (но пока без демо) по тексту вставлены коментарии по формату xHelpGen...
Просьба обладателей D5 и D7 проверить у себя, если не затруднит
ECM (2006-02-13 13:27:00) [30]Тут такая ситуация - MHMonthCalendar лежащий на kolnmck.ru похоже
недоделан... (видны торчащие и ненужные тут рудименты от взятого за снову - MHDateTimePicker)
Нотификации DTN_xxx в WndProcMHMonthCalendar ему не нужны вовсе (это всё для DateTimePicker)
-746 это MCN_SELECT уведомление о выборе (именно для MonthCalendar).
Sent by a month calendar control when the user makes an explicit date selection within a month calendar control
Так что изменеие приведенное выше - действительно будет работать...
Я сел было доделывать MHMontCalendar - но в процессе решил сделать всё заново... доделаю - выложу на kolnmck.ru
A_Vs (2006-02-13 12:03:00) [31]function WndProcMHMonthCalendar(Sender : PControl; var Msg:TMsg; var Rslt:Integer):Boolean;
var
NMDC:PNMDateTimeChange;
MHMonthCalendarNow:PMHMonthCalendar;
Data: PMonthCalendarData;
begin
Result := False;
if Msg.message=WM_NOTIFY then
begin
NMDC:=PNMDateTimeChange(Msg.lParam);
MHMonthCalendarNow:=PMHMonthCalendar(Sender);
Data:=MHMonthCalendarNow.CustomData;
// LogFileOutput('c:\LOG_F.txt',Int2str(NMDC.nmhdr.code));
with Data^ do
begin
case NMDC.nmhdr.code of
DTN_DATETIMECHANGE:
begin
if NMDC.dwFlags=GDT_VALID then
begin
SystemTime2DateTime(NMDC.st,FDateTime);
if Assigned(MHMonthCalendarNow.OnChange) then
MHMonthCalendarNow.OnChange(Sender);
FChecked:=True;
Result:=True;
end;
if NMDC.dwFlags=GDT_NONE then
FChecked:=False;
end;
DTN_CLOSEUP:
begin
if Assigned(FOnCloseUp) then
FOnCloseUp(Sender);
end;
DTN_DROPDOWN:
begin
if Assigned(FOnDropDown) then
FOnDropDown(Sender);
end;
DTN_USERSTRING:
begin
if Assigned(FOnUserString) then
FOnUserString(Sender);
end;
DTN_FORMAT:
begin
if Assigned(FOnFormat) then
FOnFormat(Sender);
end;
DTN_FORMATQUERY:
begin
if Assigned(FOnFormatQuery) then
FOnFormatQuery(Sender);
end;
-746:if Assigned(MHMonthCalendarNow.OnChange) then MHMonthCalendarNow.OnChange(Sender);
{Что такое -746 не выяснял, но так работает}
end; //case
end;
end;
end;