Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Плагин для выбора даты, подобных для NeoBook несколько, но в них не хватало некоторых функций, в частности настроек цвета календаря под цвета создаваемой публикации. Написан полностью на русском языке, в нем даже в место TRUE/FALSE просто Да/Нет.
Создание / удаление faDatePickerCreate - Создать объект DatePicker и указать переменные, в которые будут передаваться значения выбранных дня, месяца и года. faDatePickerRemove - Удалить ранее созданный объект DatePicker.
Свойства faDatePickerGetYears - Получить начальный и конечный годы показа календаря, а также получить годы в промежутке между которыми пользователю разрешено выбрать дату. faDatePickerGetProperties - Получить значения любого из свойств: режим отображение календаря, день с которого начинать неделю, количество недель в календаре. faDatePickerSetYears - Установить начальный и конечный годы показа календаря, а также установить годы в промежутке между которыми пользователю разрешено выбрать дату. faDatePickerSetProperties - Установить значения свойств: режим отображение календаря, день с которого начинать неделю, количество недель в календаре. faDatePickerSetSelectedDate - Установить выбранную дату программно. Дата должна иметь формат: dd.mm.yyyy, к примеру 12.03.2023, можно без ведущего нуля, т.е. 12.3.2023. faDatePickerShowProperties - Показывать или скрыть: сегодняшнюю дату, названия дней недели, метку месяца над первой датой.
Шрифт и цвет faDatePickerSetFont - Установить параметры шрифта для основной части, заголовка и для названия дней недели (цвет шрифта устанавливается одинаковый и на заголовок, и на название дней недели). faDatePickerSetColor - Установить цвет границы, активного и пассивного фона, рамки находящейся под курсором мыши, рамки выбранного дня, фона сегодняшней даты, подсветки ссылки в заголовке.
Подпрограммы faDatePickerSubroutine - Установить подпрограмму на клик или двойной клик левой кнопкой мыши.
Состояние faDatePickerActive - Установить / снять свойство активен.
В 2023 году понадобился плагин DatePicker, но существующие не удовлетворяли некоторым требованиям, набросал свой. В конце этого года появилось свободное время, решил придать ему более понятный и приглядный вид, сделать демку для тестирования и выложить на форуме, может кому пригодится.
В архиве плагин и демка с помощью которой можно протестировать команды.
Андрей, спасибо большое! Хорошо бы ещё оформить первый пост в этой теме — привести краткое описание плагина и список (можно под спойлером) его команд с подсказками о назначении. Добавить инструкцию как его локализовать на другой язык, если плагин поддерживает эту возможность. Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Вадим, описание добавил, к сожалению не работает форматирование, невозможно выделить жирным цветом и пр. Над локализацией на другие языки не думал, если нужно сделаю позже.
Первое что увидел сразу, при создании календаря в переменных отображаются 0, а нужно что бы сразу были значения.
По поводу тегов для форума... Давно написал себе программку, что бы в ручную все это не писать. Для плагиностроителей которые размещают здесь свои плагины думаю тоже не помешает, по этому выложу здесь ниже в прикреплении.
На этом плагине правда почему то выдает ошибку, возможно плагин чем то сжат, или не получается просто получить к нему доступ. На многих других работает исправно.
Просто указываешь путь к файлу плагина, программка вытягивает из него всю инфу и создает по возможности полное описание уже с выделенным текстом для этого форума.
Сам ей не раз пользовался (вернее для этого и написал) когда выкладывал переведенные плагины.
Это исходник, если кто то захочет под себя исправить. Нужен плагин zmPlaginInfo. Ищем на форуме или когда запускается готовая программа в папке Temp появляется этот плагин. Копируем, переименовываем, пользуемся.
Добавлено (23 Декабря 2025, 21:20) ---------------------------------------------
Цитатаmishem ()
Первое что увидел сразу
Продолжаю... При выборе в отображонном календаре года, месяца и т.д. не выделяется число которое находится в переменной по умолчанию. Не меняется в переменных по умолчанию месяц и год.
Так он и будет жить если здесь общаться, а не на чужеземных ресурсах через переводчик. Только Русские пытаются везде угодить и за это еще и быть виноватыми. Не хочешь читать хелп?
Первое что увидел сразу, при создании календаря в переменных отображаются 0, а нужно что бы сразу были значения.
При создании календаря дата еще не выбрана, по этому в трех переменных нули. Кликни по 10 декабрю, увидишь как появится синяя(цвет можно менять) рамка, что означает, что это выбранная дата, а в переменные запишется 10 12 и 2025 соответственно. Кликни еще раз по 10 декабря, рамка пропадет, что означает выделение даты снято, а в переменных снова будут нули, т.е. нет выбранной даты. Может ты не разобрался. Полностью синим фоном выделяется не выбранная дата, а текущая, я не думаю, что ее нужно заносить в переменные.
Цитатаmishem ()
На этом плагине правда почему то выдает ошибку, возможно плагин чем то сжат, или не получается просто получить к нему доступ. На многих других работает исправно.
Я сжимаю плагины, примерно на треть становится файл меньше, а иногда и до 50%.
Спасибо за прогу попробую обязательно.
Добавлено (23 Декабря 2025, 23:26) ---------------------------------------------
ЦитатаВадим ()
Живёт форум!
Жаль, многие уже давненько не посещали этот форум.
Добавлено (23 Декабря 2025, 23:36) ---------------------------------------------
Цитатаmishem ()
Продолжаю... При выборе в отображонном календаре года, месяца и т.д. не выделяется число которое находится в переменной по умолчанию. Не меняется в переменных по умолчанию месяц и год.
К сожалению не понял о чем речь. У меня при клике по датам меняется и дата и месяц и год в переменных по умолчанию. Нажимаю на 10 декабря, меняется 10 12 2025, кликаю на 20 декабря, появляется 20 12 2025, если кликнуть на 12 января 2026 года, то в переменных будет 12 1 2025.
Может имеешь ввиду, когда выберешь отображать календарь по годам или месяцам и при смене месяца он не меняется в переменной? То пока не кликнешь по дате, не изменится не чего. Так устроен этот компонент.
Календарь создан, и переменные должны быть заполнены.
Цитатаfrolandr ()
При создании календаря дата еще не выбрана
Дата уже выбрана, текущая. И она должна быть в переменных если они указаны. Пример: Календарь создан. Дату никто не выбирал, но нужно получить значение из календаря, а там нули.
То же самое и когда выбирают год, месяц. Выбрали, дату не нажимали, а при получении данных в процессе работы будут данные с потолка. Год и месяц при выборе должен обновляться, число в календаре должно выделяться то, которое находится в переменной, или например 1е число, но и в переменной оно должно обновится на 1е. Обычно последнее выбранное, или если такого нет по моему последнее число месяца. Например в переменной 31, а в месяце всего 29. Тогда выделяется 29 и в переменную записывается 29.
При любом создании, изменении даты в календаре и переменных должны соответствовать. Иначе смысл в переменных?
Если вдумаешься о чем я, поймешь. Календарь программно с переменными должен работать синхронно, а не ждать действий пользователя, когда он щелкнет по дате. А если он вообще никогда не щелкнет и даже не собирается. Ему к примеру календарь нужен для отображения календаря и получения текущей даты. Сутки программа работает, никто по календарю не щелкал, а нужно программно получить значения из переменных. А там 0.
Добавлено (23 Декабря 2025, 23:49) --------------------------------------------- И возможно нужно еще переменную добавить. Выбранная и текущая не одно и то же. Здесь я наверно не разобрался и по разному понимаем что должно быть в переменных. Если дата не выбрана, то поидее переменная выбранной даты должна быть пустая, а не 0.
Дата уже выбрана, текущая. И она должна быть в переменных если они указаны. Пример: Календарь создан. Дату никто не выбирал, но нужно получить значение из календаря, а там нули.
Смотри, этот пикер написал для программы ухода за лежачими больными, по распределению услуг по числам месяца и дням недели. Пользователь программы(сиделка или помощник по уходу) кликает на дату, а затем выбирает услуги, которые она должен будет оказать больному. Если пользователь забыла нажать на дату, а нажала сразу выбор услуг, то ей выдается сообщение - "Пожалуйста сначала выберите дату". Если в переменные назначить текущую дату, то по ошибке услуги будут записаны на текущую дату. После выбора услуг чек на выбранную дату снимается и пользователь выбирает следующую дату и т.д.
Добавлено (24 Декабря 2025, 00:02) --------------------------------------------- Я о том и писал, что пикеров для Нео несколько, нужно было сделать именно под программу. Если у меня остались исходники на другой пикер, который сначала написал, там как раз при обычном перелистывании месяцы записывались в переменную, т.е. пользователь выбрал 10 декабря 2025 года, но просто решил перелистнуть на месяц или два вперед, чтобы посмотреть к примеру выходные, то в переменную записывался след. месяц, а она не отлистнув его назад нажимала на кнопку "Выбрать услуги", так ей и записывался другой месяц.
Сообщение отредактировано frolandr - Ср, 24 Декабря 2025, 00:07
Вот посмотри изображение делал пикер на основе этого календаря. Он как раз при перелистывании пишет в переменные измененный месяц и год, т.е. дата выбрана 10 декабря 2025 года, но если его перелистнуть вправо, то уже будет 10 января 2025 года в переменных. Мне его забраковали, нашел подходящий.
Добавлено (24 Декабря 2025, 00:34) ---------------------------------------------
Цитатаmishem ()
И возможно нужно еще переменную добавить. Выбранная и текущая не одно и то же. Здесь я наверно не разобрался и по разному понимаем что должно быть в переменных. Если дата не выбрана, то поидее переменная выбранной даты должна быть пустая, а не 0.
Верно, выбранная и текущая дата это разные даты. Делал компонент, чтобы получить именно выбранную дату, текущую можно и обычными средствами Нео получить.
Вот переменные при не выбранной дате можно было сделать пустыми, так тоже норм будет, другое дело, что сам компонент отдает 0, даже не NULL и не пустую строку. При создании компонента передаем переменные, они не инициализированы, т.е. НЕО дает пустую строку, а 0 показывает, что в эти пустые переменные уже что-то попало.
Добавлено (24 Декабря 2025, 00:58) --------------------------------------------- Назначения этого компонента - выбор даты, которая включает в себя: день, месяц, год. Если выбора нет, то считается, что дата не выбрана, а в переменных будут 0 (можно как ты писал и "" - пустая строка). Текущая (сегодняшняя дата) не является выбранной датой. Она опциональна, показ сегодняшней даты можно отключить командой плагина, а другой командой назначить "выбранной датой" любую дату. Я даже сейчас не помню, по умолчанию вроде бы сегодняшняя дата отключена, т.е. при создании компонента она по дефолту не будет показана. Посмотри вот изображение другого пикера, который делал первым, там сегодняшней даты вообще нет на поле календаря, она, если не изменяет память может быть написана строкой внизу под цифрами месяца.
Добавлено (24 Декабря 2025, 01:08) --------------------------------------------- Я сам компоненты не пишу, ищу подходящий под ТЗ, а затем пишу производный класс от родителя. Добавляю свойства, поля, переназначаю методы и т.д., но не все это работает. Нельзя переписать метод, если в родителе он не virtual. Кроме того в Билдере, когда кидаешь на форму компонент, все работает в 99% случаев, а пишешь DLL под НЕО, то одно не работает, то другое не так как нужно. Знаний мало, а искать в сети все труднее, тырнет зарубежные сайты игнорит, а что касается C++, так умерло году в 2014, на Делфи есть конечно, но не всегда переведешь. К примеру, вот такая строка в справке к созданию плагинов на Делфи: PROCEDURE WMNotifyPlugIn( VAR Msg : TMessage ); MESSAGE WM_NOTIFYPLUGINOBJECT; на c++ я несколько дней просил, чтобы перевели, так даже в каркасе для написания плагинов на С++ куча ошибок, спрошу у ребят, что это, мне в ответ, так это на Делфи
Добавлено (24 Декабря 2025, 01:26) ---------------------------------------------
Цитатаmishem ()
На этом плагине правда почему то выдает ошибку, возможно плагин чем то сжат, или не получается просто получить к нему доступ. На многих других работает исправно.
Вот что получил твоей прогой из не сжатого плагина faSnapShot Íàçâàíèå ïëàãèíà: Àâòîð: Îïèñàíèå: Перевел крякозябры, вот что получилось: Название плагина: Автор: Описание: Это вся инфа больше нет.
Добавлено (24 Декабря 2025, 01:27) --------------------------------------------- Я в отельный юнит вынес это инфу, может по этому не получается вытянуть?
Переходи на делфи. Задатки уже есть, постепенно обвыкнешься. Тем более делфи пока развивается.
Эх поздно уже и не только из-за возраста, но об этом не в паблике. Мда, первую книжку я купил Ассемблер, так как в конце 90 писал на нем для Спектрума и позже для 286, а вот вторая то была и есть ТурбоПаскаль Но в начале 2000 забросил программирование, а через 4 года вернулся, но уже html, css(его хотя вроде в 2004 еще не было) ну и php, привык к его синтаксису, вроде бы и не особо жалею, так как потом лего было осваивать js и мало-мало c++
Добавлено (24 Декабря 2025, 01:38) ---------------------------------------------
Цитатаfrolandr ()
Это не в проге, это потому что плагин у тебя упакован. Я выше писал. Попробуй не сжимать плагин, и все должно пройти нормально.
Нет, плагин не упакован, специально заново скомпилил, не сжатый не шифрованный.
Я так монимаю должно вот это отдать: SetStr(PlugInTitle, "faSnapShot v 1.0"); SetStr(PlugInPublisher, "Фролов Андрей"); SetStr(PlugInHint, "Компонент......
Никогда не поздно, было бы желание. Основы у тебя есть, а принцип программирования везде один. Скелет есть. С пол годика попрактикуешь, и попрешь как буд то всю жизнь на делфи писал.
Добавлено (24 Декабря 2025, 01:44) ---------------------------------------------
Цитатаfrolandr ()
Я так монимаю должно вот это отдать:
Да. И плюс все заголовки разделов, названия команд и описание команд.
Добавлено (24 Декабря 2025, 01:51) --------------------------------------------- Здесь свой плагин выложил (а то так и затеряется на компе) https://neobooker.ru/forum/37-3759-1#79622
Попробовал просто на своем и тебе как пимер показать, что выходит. Пару минут на все про все что бы создать тему. Сам еще даже не читал, что там выложил и то ли это вообще?