Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Приветствую! Делаю календарь, с возможностью выбора даты. Кликом можно установить или снять выделение нужной даты. Календарь создается налету, имеется 37 полей в кторые в зависимости от месяца устанавливаются дни по порядку. Первое число месяца может попасть как в поле 1 так и в поле 7 в зависимости какой это день недели. Заголовки этих полей имеют переменные от calendarData1-calendarData37. Выбранные даты записываю в массив, так вот чтобы получить номер дня недели пытаюсь взять его из заголовка объекта:
Однако получаю не число из переменной, а саму переменную, т.е. в select попадает например [calendarData1], а не содержащееся в ней число. Вопрос к знатокам, можно ли как то получить число?
Можно получить числа из [select] с помощью штатных команд работы со строками. Но проще сразу командой SetVar поместить нужное значение в отдельную переменную, которая будет заполняться кликом по нужному полю.
С помощью каких объектов сделаны "поля" календаря?
Вообще, для создания календаря и работы с датами есть плагины, которые упрощают разные задачи: asCalendar (Андрей Солодянкин) asDatePicker (Андрей Солодянкин) asMonthPlanner 1.4 (Андрей Солодянкин) dec_Plus 1.9 (David Esperalta) hpwUtility 2.16 (Hans-Peter Wickern) faDateTime 1.0 (Андрей Фролов) FileUtils (Drazen Glojnaric, Marije Ljolje) NeoBookDBPro 1.6a (NeoSoft Corp.) - NeoDBpro (SinLios) tmDates 1.01 (Alberto Meyer)
Вадим, спасибо Вам за ответ! Календарь создается на лету, в поля записаны переменные [C1] - [C37], с помощью команды GetObjectInfo как раз берутся название этих переменных, а не содержимое. Т.е. после применения команды, на первое поле я получаю строку [C1], а не число 1. Я переписал немного код, и теперь другим способом получаю числа, просто через GetObjectInfo казалось это проще. Пробую прикрепить изображение, может так будет понятнее, что пытался сделать.
Добавлено (05 Мая 2022, 18:01) --------------------------------------------- Отдельное спасибо за список плагинов, поищу и попробую их. В программе я использую два плагина NeoDatePicker видимо это аналог плагина asDatePicker (Андрей Солодянкин) и tmDates 1.01 (Alberto Meyer).
Да, решение найдено. Можно было это сделать 3 или даже 4 способами. На всякий случай выкладываю исходник с папками Functions и Plagins. Если будет интерес, можете скомпилировать и посмотреть. Если в меню нажать на пункт "Выбрать праздники", появится окно с календарем. На будние дни в календаре можно кликать и отмечать их праздничными. Вверху окна появится результат работы GetObjectInfo, который будет выводить имя переменной, а не число, ну а чуть ниже, то что нужно было, т.е. число, на которое был клик в календаре.
Вадим, по Вашему совету решил посмотреть обозначенные плагины. Начну с первого - asCalendar (Андрей Солодянкин), очень функциональный плагин, однако обнаружилась некоторая не приятная проблема. При создании календаря хотел поменять название дней недели и месяцев на кириллические, ПОН, ВТО, СРЕ... ЯНВАРЬ, ФЕВРАЛЬ и т.д., но, к сожалению, получаю их не буквами алфавита, а "крякозябрами". При чем набираю, все хорошо, как только делаю переход к другому полю, предыдущий меняет нормальный шрифт на крякозябры, если снова кликнуть по предыдущему полю, то снова все хорошо. Сохраняются в команду тоже хорошо, но вот при компиляции снова крякозябры. На скриншоте видно, что даже в тексте плагина не правильный вывод текста. Пробовал ставить английскую версию, тоже самое. В других, ранее используемых плагинах такого нет. Может быть кто подскажет в чем может быть дело. Изображение прилагаю, система Виндовс 11, NeoBook 5.8.7
Да, у меня повторяется проблема и тоже Windows 11 (64), VisualNEO Win. Почему-то VisualNEO Win при запуске зависает, если этот плагин установить. А если его установить при загруженной VisualNEO, и запустить тестовую компиляцию, то VisualNEO зависает при попытке отобразить дебаггер. Окно проекта не успевает отобразиться.
Видимо проблема в совместимости плагина с виндой 11-й версии. Я тестировал этот плагин на семёрке и он отлично работал. Наверное есть смысл попробовать пока другой плагин. Но asMonthPlanner я на 11-й винде тоже не смог запустить. Остальные не проверял.
Добавлено (07 Мая 2022, 18:21) --------------------------------------------- Я сообщил Андрею (разработчику плагина). Он сказал, что посмотрит, что можно сделать
Добавлено (07 Мая 2022, 18:45) --------------------------------------------- Андрей (разработчик плагина) Вам предлагает поменять шрифт на Tahoma, говорит, что не все старые шрифты поддерживаются. Поэкспериментируйте со шрифтами.
Сейчас поэкспериментировал на Win 10, поставил в настройках проекта шрифт Tahoma, также в команде asDPickerFont установил этот шрифт. Казалось бы изменений не произошло, в окне плагина также крякозябрами, а вот после компиляции в календаре скомпилированной программы появились нормальные кириллические буквы. Спасибо Вам и Андрею!
До этого стоял шрифт Arial.
Сообщение отредактировано frolandr - Сб, 07 Мая 2022, 19:31
Спасибо за обновленную версию. В этой версии уже нет крякозябров, но к сожалению есть другой баг(вернее наверное не правильная работа в Вин 10). Создаю командой asCalendarCreate календарь, вписываю короткие названия дней недели, сохраняю. Все просто отлично, но если попытаться отредактировать эту команду, то названия дней недели уже не попадают в окно плагина и при повторном сохранении исчезают. У меня Виндовс 10 и 11, обе 64 битные.
В Виндовс 11 все отлично. При написании команд не пропадают внесенные изменения. Крякозябров также нет. При компиляции крякозябры тоже пропали, если изменить шрифт на Tahoma.
Спасибо большое, за внесение изменений.
Только вот точно такие же проблемы с плагином asDatePicker
Сообщение отредактировано frolandr - Сб, 07 Мая 2022, 22:19
Постараюсь исправить ошибки.(asDatePicker) не быстро - времени на всё нехватает. Желательно указывать какая команда не работает или работает с ошибками , т.к. на поиски уходит много времени. простые-типа крякозябров - решаются быстро.
Здравствуйте, Андрей! Спасибо Вам за отличные и нужные плагины. По тестированию плагина asDatePicker в Windows 10 и Windows 11. Крякозябры появляются в командах: asDPickerCreate asDPickerNameMounths Еще я не нашел команду "Установить день начала недели на календаре", подобной asCalStartDay в плагине asCalendar. Она была бы очень востребованной для тех, кто хочет установить начало недели с понедельника, а не с воскресенья, как сейчас по умолчанию. Возможно, я просто не понял, как можно установить начало недели на понедельник. После создания объекта DataPicker, если его открыть, а основное приложение свернуть в трей, то календарик остается открытым, а на панели задач появляется отдельная вкладка для него.
frolandr, у меня к вам просьба протестировать плагин asCalendar/ Плагин поправил, проблеммы с кодировкой убрал, должен работать нормально. У меня не установлена Винда 11 или Винда 10 ( тем более 64 бит) - так что на вас вся надежда. )-
поправил плагин asDatePicker. Убрал крякозябры в окне помощника кода , добавлены 2 команды (в конце команд плагина) - выбор начала недели , свернуть-развернуть окно календаря
Пока вижу такое: вписываю в команду asDPickerNameMounths параметры в виде месяцев. Сохраняю, все хорошо, но если кликаю на эту команду для редактирования, то месяцы не прописываются в окне плагина.
странно как то . На ВИН7 отлично всё работает .....
Добавлено (08 Мая 2022, 19:29) --------------------------------------------- Н уи что самое интересно - сравнил два исходника asCalendar и asDataPicker - итог : две команды которые сохраняют названия месяцев и дни недели идентичны друг другу - вообще ничем не отличаются Я окно помощи одного плагина скопировал в другой плагин .- что б не писать лишнего кода. вообще не понятно почему в одном работает - а в другом пропадает ( при редактировании) , но повторюсь - в WIN7 всё работает на "УРА"....
Сообщение отредактировано AS3856 - Вс, 08 Мая 2022, 19:18
Появилась небольшая идея по поводу пропажи - реализовал. опробуйте на ВИНДЕ 10 или 11 -У меня на ВИН 7 идёт норм -в архиве подправленный плагин - последнее что пришло в голову ....
Добавлено (08 Мая 2022, 19:51) ---------------------------------------------
Цитатаfrolandr ()
Вот еще командой asDPickerGetDates "Rectangle1" "[Value]" не могу получить значение в переменную.
а при запуске демки команда работает ? - Она есть в кнопке - посмотри что получаешь в дебаггере....
Перешел сейчас на 11 виндовс, таже проблема с пред. версией плагина asDPickerCreate работает норм, а вот asDPickerNameMounths при редактировании так и не подхватывает параметры в окно плагина.
Сейчас попробую последнюю версию.
Добавлено (08 Мая 2022, 19:56) ---------------------------------------------
ЦитатаAS3856 ()
Я окно помощи одного плагина скопировал в другой плагин .- что б не писать лишнего кода.
Пишу немного на php и js, очень часто при копировании происходят ошибки. Хочется быстрее, копирну, а в другом месте, куда вставляю чуть переменные изменил или еще что и ошибку поймаю, потом ищу долгое время
Пишу немного на php и js, очень часто при копировании происходят ошибки. Хочется быстрее, копирну, а в другом месте, куда вставляю чуть переменные изменил или еще что и ошибку поймаю, потом ищу долгое время
Посмотрел в asCalendar такая же проблема. Т.е как понял в списке дней недели и месяцев в конце не должно быть пустого значения. Т.е. поля воскресенье и декабрь обязательно должны быть заполнены, чтобы не было проблем с редактированием.
Добавлено (08 Мая 2022, 20:23) ---------------------------------------------
ЦитатаAS3856 ()
проблемма понятна.решение также понятно - сделаю . , но чуть позже
Понял, спасибо!
Сообщение отредактировано frolandr - Вс, 08 Мая 2022, 20:24
Исправил в плагине все недочёты. имена месяцев теперь отражаются правильно если полностью не заполнять таблицу имён в окне помощника кода. Раскрытое окно календаря закрывается при нажатии на кнопку "Минимизировать окно программы"(проекта), имена дней недель (и месяцев) можно заполнять или оставлять пустыми.
В этой версии при редактировании не пропадают не дни недели, не месяцы, но появилось другое. Если не заполнить последний день недели, то они совсем не появляются в календаре. Если не заполнены последние месяцы, то выводятся названия месяцев по умолчанию из плагина.
Добавлено (09 Мая 2022, 13:16) --------------------------------------------- Спасибо, что сделали закрытие календаря при сворачивании приложения!
Возможно ошибаюсь, но открытый объект с отображенным календарем отлавливает нажатие кнопок мыши, и клавиши ентер. Так как при клике мышкой или ентером календарик исчезает. К сожалению, он при исчезновении не закрывается, а остается на заднем плане. Нельзя ли сделать так, чтобы после того, как календарь был открыт и был клик или нажатие ентер ВНЕ КАЛЕНДАРЯ, он закрывался? Также как вы сделали при сворачивании окна. Это конечно мое мнение, но мне, кажется, так бы было правильно и если конечно это возможно сделать.
Добавлено (09 Мая 2022, 13:20) --------------------------------------------- Если еще позволите, хотя наверное я вас уже замучал
Стандартные объекты Необук при наведении/уходе мыши обозначают себя, к сожалению, DataPicker не имеет реакции типа MouseEnter - MouseExit, от этого кажется, что он неактивен. Можно ли сделать, чтобы объект реагировал на наведение курсора мыши? У вас в плагине сделана возможность изменять цвет комбо. Может можно при наведении чуть осветлять этот цвет, или кнопочку разворачивая комбо подсвечивать или цвет бордюра чуть осветлять или менять.
Добавлено (09 Мая 2022, 13:23) --------------------------------------------- Сделал контейнер, разместил в нем объект DataPicker, плюс необушный combobox и кнопку. Фокусировка по Таб работает хорошо. Если во время фокусировки на объекте DataPicker стрелками клавиатуры нажать вверх или вниз, появляется дата позапрошлого века - 30.12.1899, не понял откуда она берется. Тоже самое можно получить, если после выбора даты ее стереть или удалить, повторное открытие календаря происходит также на 1899 год. В необушном combobox нет возможности редактирования. Возможно нужно убрать возможность редактировать это поле в объекте DataPicker?