powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хочу поделиться - Всплывающий календарик для ввода даты.
25 сообщений из 198, страница 3 из 8
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32395032
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК,

и еще предложение: хранить настройки не в реестре, а в пользовательских свойствах формы (CurrentProject.AllForms(...).Properties). Правда, тогда для 97 работать не будет :(
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32395505
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Senin Viktor
>и еще предложение: хранить настройки не в реестре, а в пользовательских свойствах формы

мне кажется что в реестре удобнее так как эти настройки сохраняются для каждого пользователя при замене файла с формами (клиентской части)

лично я частенько дописываю и скидываю новые версии и мне говорят что неудобно что они работали со своими настройками а после того как я скинул новую версию - снова надо задавать

единственное что я бы еще сделал - опциональный параметр к функции вызова
формы - имя настройки в связи с тем что календать может быть использован в проекте где может быть логичным хранить несколько значений по умолчанию для разных типов форм


вот только не уверен добавить ли форму выбора месяцев (громоздкость примера) или убрать ссылку ?
или сделать два варианта?
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32395967
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обещанный кодик закрытия календарика

В модуле календарика

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub Form_Open(Cancel As Integer)
...

Call SubClassHookForm ' ставим хук

End Sub

Private Sub Form_Unload(Cancel As Integer)
...

Call SubClassUnHookForm ' снимаем хук
    If IsLoaded( "frmMonth" ) Then DoCmd.Close acForm,  "frmMonth" 

End Sub


В обычном модуле

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
'HOOK
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex 

As Long, ByVal dwNewLong As Long) As Long

Private Const GWL_WNDPROC = (-4)
Private Const WM_LBUTTONUP = &H202 
Private Const WM_SETCURSOR = &H20
Private Declare Function CallWindowProc Lib "user32" Alias _
   "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, _
   ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private m_PrevWndProc As Long

Public Sub SubClassHookForm()
' хук на Акес
   m_PrevWndProc = SetWindowLong(Access.hWndAccessApp, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Public Sub SubClassUnHookForm()
On Error Resume Next
   Call SetWindowLong(Access.hWndAccessApp, GWL_WNDPROC, m_PrevWndProc)
End Sub

Private Function WindowProc(ByVal hwnd As Long, ByVal msg As Long, _
        ByVal wParam As Long, ByVal lParam As Long) As Long

    If msg = WM_SETCURSOR Then
        'выделяем старшую часть слова,
        'содержащую сообщение о том какая кнопка была нажата
        Select Case lParam \ &H10000
            Case WM_LBUTTONUP  ' Можно и другие кнопки
                If IsLoaded( "DatePicker" ) Then DoCmd.Close acForm,  "DatePicker" 
        End Select
    End If
    WindowProc = CallWindowProc(m_PrevWndProc, hwnd, msg, wParam, lParam)
End Function


Проверено на Акесе2002, на календарике из примера Сергея Гаврилова
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32396126
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо Виктор, буду тестировать.
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32396787
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо Виктор, буду тестировать
Когда будешь тестить - обрати внимание на поведение календарика при двойном щелчке по полю - календарик закрывается, если же сменить константу LBUTTONUP на LBUTTONDOWN= &H201 - то каледарик закрываться не будет, но тогда он действо нельзя будет отменить (т.е. в первом случае, нажав на копку мыши и не отпуская оную перенести ее на каледарик - события LBUTTONUP не будет, в случае же LBUTTONDOWN оно будет и каледарик закроется)
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32397024
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Виктор
заметил .
все прикольно , просто супер получилось!!

2 ALL
готова новая версия демo- примера

добавлен код Виктора,
Hummer написал инсталяшку для вставки календаря в рабочие проекты

описание здесь
MDB (Access 2000-2003, 368 кб)
RAR (Access 2000-2003, 63 кб)
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32397036
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 АлексейК
Ну не инсталяшку, а просто импорт:) Вроде, должен фунциклировать нормально...
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32397064
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2АлексейК \r
\r
Из замечаний: (не значительных)\r
Что мне не нравится в этом календаре - так это ссылка на контрол с датой и формой по Screen.ActiveControl/ActiveForm\r
\r
\r
==\r
М.б. так же включишь и этот календарик - для красоты и обучения работе с целой кучей технологий?\r
Это стандартный MS MonthView - но без ActivX\'ов - правда чтобы он закрывался по щелчку в любом месте формы надо будет потрудиться
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32397097
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Виктор.

конечно же вещь крутая,
я сказал бы даже очень сильно крутая чтоб быть применимой на практике
сплошные меню и winapi

видимо челевек жизнь положил чтоб написать такое, правда в демопримере совсем страшный дизайн.

а чтоб изменить что под себя так голову сломаешь ...
даже брекпоинты нельзя ставить..
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32397104
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мое рацпредложение
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32397108
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лифчик, как то упустил, сделаю
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32397192
Fortochkin XP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю я.. может банал вношу.. но

Я делаю так:

Если нужна дата по умолчанию она стоит там по умолчанию (гениально:)
Усли юзер хочет руками заколбасить дату он ее бьет туда пальчиками по маске типа ХХ/ХХ/ХХ (главное чтобы комп был настроен так шоб день и месяц не менялись местами по настроению:)
А хочет календарик - нивапрос - даблклик и на те календарик. У мя всех такой подход радует.
То бишь я люблю мануально долбить дату (ну люблю я) и мне ничаго не мешает. Сосед ну любит рассмотреть дни недели там всякие .. и пускай смотрит. Все довольны.

Всем привет .)
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32397244
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо челевек жизнь положил чтоб написать такое, правда в демопримере совсем страшный дизайн.

Зато какая жизнь прожита!
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32408103
Sport$man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу поблагодарить авторов календарика!
(Сергей Гаврилов, Алексей Козин, Виктор Сенин, Дмитрий Роговой) за хорошую работу. Очень понравился. Не думал, что такое можно на Аксесс написать!
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410700
Фотография Rafa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Календарь прелесть, супер...намного лучше чем у Лебанса ;)
есть еще предложение: при прокручивании колесика мышки прокручивать месяцы.......
слабо ?;)
также при щелчке на годах можно организовать выбор из списка годов, но это уже сам смогу ;)
Надеюсь, притязаний на отчисления не будет ?
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410712
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Sport$manСергей Гаврилов, Алексей Козин, Виктор Сенин, Дмитрий Роговой
А Дмитрий Роговой - это тоже кто-то из нашего форума?
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410759
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> А Дмитрий Роговой - это тоже кто-то из нашего форума?

да, это Hummer.

он написал модуль экспорта / установки модулей календаря в действующие проекты


> есть еще предложение: при прокручивании колесика мышки прокручивать месяцы....... слабо ?;)

реализовать можно но на мой взгляд необходимости такой нет.
достаточно удобно выбирать месяц из выпадающего списка - кликни на названии месяца
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410768
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Понял, thanx.
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410826
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть еще предложение: при прокручивании колесика мышки прокручивать месяцы.......

а нужно ли? Сделать не трудно


также при щелчке на годах можно организовать выбор из списка годов, но это уже сам смогу ;)

и какой это будет список: от 1 до 9999 года? Многовато и тяжеловато для списка - проще псевдо UpDown-control забацать.


2 АлексейК
Ошибку нашел - на днях исправлю - скину тебе. В случае, если форма PopUp - календарик закрываться будет только при щелке ВНЕ формы - прийдется данную ситуацию отслеживать и вешать хук на саму форму, если она PopUp, дабы закрывалась как и при щелчке на форме так и в любом другом месте .
И еще один баг - в случае выбора месяца из списка - дата подставляется "насильно"
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410838
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Авторам (или автору)

При заполненной дате, нажимаю кнопку вызова календаря.
Нажимаю на кнопки скроллинга месяца или года - изменяется дата в поле. Так и должно быть?
Имхо не очень удобно - я ведь не выбирал дату, а только делаю просмотр календаря.
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410850
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не должно.
Я это только полчаса назад обнаружил. Думаю, подправить будет легко.

2All
А еще какие предложения по функциональности будут?
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410890
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо так задумано было в изначальном варианте.
кому эффект не нравится можно заремить строку в процедуре

Public Function ChangeMonth(ByVal Interval As String, ByVal Direction As Long)
On Error Resume Next
mDtmDate = DateAdd(Interval, Direction, mDtmDate)
Form_Draw
'mCallingControl.Value = mDtmDate
End Function

Думаю что в связи с тем что есть различные пожелания к функциональности
можно добавить набор настроек, чтобы каждый перед импортом к себе в проект мог выбрать набор функций - кому выпадающий список месяцев
а кому колесиком мыши
кому года листать колесиком мыши
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410901
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и пухлое печатное руководство

а что, в доп. свойства вынести эти фичи не хотите?
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32410931
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то то и оно что в данном случае хотелось бы обеспечить максимальную простоту универсальность и доступность.

кому нужен будет календарь если он будет весить мегабайт ?

поэтому придерживаюсь мнения что полный набор возможностей держать в базе - инсталяшке
в ней же выбирать что нужно а лишнее отсекать перед экспортом к себе в проект.
...
Рейтинг: 0 / 0
Хочу поделиться - Всплывающий календарик для ввода даты.
    #32411598
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ver 3.3

1. добавил код Виктора :
теперь можно использовать список месяцев в соответствии с региональными настройками системы
т.е. для русской настройки январь, февраль для английской January,February ..

видимо будет актуально для любителей (и возможно профессионалов :) Иврита

2. При смене месяца и года теперь дата не проставляется если отдельно его об этом не попросить ...

MDB

RAR
...
Рейтинг: 0 / 0
25 сообщений из 198, страница 3 из 8
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хочу поделиться - Всплывающий календарик для ввода даты.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]