Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Промурыжился я с настраиваемым календарем дня 4, и результат не устраивает. Мож у кого какие идеи есть, как лучше сделать? А то бывает, зациклишься в одном направлении, а ларчик проще открывается.
Хочу сделать(ды почти сделал) что бы все настраивалось. Текст, фон, прозрачность, возможность вставлять рисунки как вместо фона, так и вместо чисел, и т.д.
Проблема заключается в чем. В связи с тем что много объектов, и каждый нужно перерисовать, изменить свойства щрифта, размеры, местоположение, получается слишком долгое создание календаря. После все вроде побыстрее, но вот начало, это...
Короче в прикреплении пример. Загрузка при запуске закончится только тогда, когда фон чисел станет белым. После можно менять шрифт, цвет, месяцы, годы....
Еще есть проблема, если быстро щелкать по кнопкам (числам) подпрограмма не успевает сработать и вываливаются ошибки.
Короче Петр, вот в таких ситуациях я считаю что нужен плагин, и средствами НБ полнофункционально врядли можно сделать. А плагин такой есть только один, но я уже говорил, что сделан через одно место.
Добавлено (07 Марта 2014, 06:52) --------------------------------------------- Плагины
средствами НБ полнофункционально врядли можно сделать.
Средствами NB много чего нельзя сделать, и на каждый эпизод плагин варганить? Так с ума можно сойти!
Эсперальту вон уже и не остановить, как его расперло! Понаделать (словно на конвейере) кучу говна, а толку?
У меня вон затык сейчас с этим VLC (думаю преодолимый), но я немало узнал нового и интересного. Мне бы с ним разобраться, ведь я не Юлий Цезарь. А там работы (если делать по-нормальному) не на один месяц наберется.
Цитатаmishem ()
А плагин такой есть только один,
Это какой? Нужно смотреть. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
и чем больше я ковыряюсь в плагинах эсперальты, тем больше удивляюсь тому, что их покупают.
Ды я сам поражаюсь. Сначала как то переводить начал, а после как обнаружил что если не в каждом, то через один глюки прут, бросил. Сначала правда сообщал ему, а после понял что бесполезно. Один исправляет, пару добавляет.
Естесственно, что VLC это надолго, только ведь можно сделать сначала базовую функциональномть, и пока идет обкатка, отыскиваются и фиксируются глюки (а как же без них-то) млжно и чем другим заняться (хотя, у меня полно этого "другого"). А возможно все завалится сразу, и обкатывать будет нечего.
Но, самый нормальный путь - Гарик.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
В общем, глянул я сейчас компонент, о котором говорил, недоделанный он какой-то, и надо доводить его до ума. Возможно поэтому эсперальта и не захотел с ним заморачиваться, и взял старье, из бесплатного ничего толкового по сути и нет. Главный недостаток (пока!) обнаружился в том, что нельзя сделать календарь полностью плоским:
слева - вид по-умочанию, справа - максимальная "плоскостность", которой я смог добиться с имеющимися опциями, т.е. между "кнопками" (ячейками) дней нельзя сделать промежутки и кнопки сливаются в общий фон, что не есть гуд для дизайна. Кнопки или 3D (с рамкой) или сплошные. И весь календарь тоже с рамкой.
Компонент неплохой, но надо дорабатывать, а это - время... время... время... И неизвестно,что ещё вылезет.
А с бесплатным всегда так: или глючное, или недоделанное.
На эсперальту это не распространяется - у него даже за деньги и глючное и недоделанное.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Peter, вообще то для своих нужд я сделал как мне надо было.
Если сразу указать все картинки, размеры, то не так и заторможено получается. Я просто слишком круто завернул, хотел универсальный сделать. Что бы можно было на лету менять картинки, размеры, стили...
В принципе, я что подумал. Календарь, это та же сетка (таблица) поискал плагины в этом направлении, и опять столкнулся с проблемами. Ни один не умеет устанавливать отдельный цвет для определенной ячейки.
ЦитатаRezzoxe ()
Да и глянь что да как...
Что да как я разобрался без этого. Такой простенький сделать не проблема.
Кстати может быть знает кто нибудь формулу как определить день недели первого числа зная месяц и год и где то была формула как определить количество дней в определенном месяце. Что б плагин не подключать.
Омар, впринципе это все что нужно что бы сделать свой календарь.
ЦитатаRezzoxe ()
Качни урезанную версию mmb:
У меня и так всякого хлама завались. ммб я не знаю, с наскока не разберешься, а вникать не хочу.
Добавлено (09 Марта 2014, 02:07) ---------------------------------------------
Добавлено (09 Марта 2014, 02:26) --------------------------------------------- Так с наскока... вроде в году одинаковое кол-во дней... кроме февраля. Учитываем високосный год, формула вроде есть в инете... и всё вроде.
Учитываем високосный год, формула вроде есть в инете... и всё вроде.
Ды у нас на форуме я выкладывал формулу. Находил с подробным описанием. Только не помню где. В таймерах что ли? То что ты формулы даешь... Попробуй в них разобраться что бы сделать для НБ еще.
Я и формулу находил
Цитатаmishem ()
как определить день недели первого числа зная месяц и год
но так и не понял что к чему. Поэтому не стал голову ломать и воспользовался плагином. Не хочешь читать хелп?
как определить количество дней в определенном месяце
Вот сейчас тем же самым занимаюсь только с Lua, могу привести мой пример, думаю адаптировать будет просто. Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
local D = 0 --/ Количество дней в текущем месяце local M = tonumber(os.date("%m")) --/ Текущий месяц в цифровом значении (от 1 до 12) local Y = os.date("%Y") --/ Текущий год if (M == 1) or (M == 3) or (M == 5) or (M == 7) or (M == 8) or (M == 10) or (M == 12) then D = 31 elseif (M == 4) or (M == 6) or (M == 9) or (M == 11) then D = 30 elseif (M == 2) then D = 28 if (math.fmod(Y, 4) == 0) then --/ Если остаток от деления текущего года на 4 равен 0, значит в феврале 29 дней D = 29 end end
Это пока то, до чего сама додумалась, досконально заняться этим вопросом пока не успела
Цитатаmishem ()
как определить день недели первого числа зная месяц и год
А вот это мне тоже надо, но тоже пока не занималась, хотя мысли есть Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
Сообщение отредактировано Callisto - Вс, 09 Марта 2014, 12:06
Получим число 28. Столько сколько в Феврале в этом году.
ЦитатаCallisto ()
А вот это мне тоже надо
Это я тоже видел в интернете, но так и не смог понять что именно за что отвечает.
Все копипастят с других ресурсов, а пояснение найти сложно.
Добавлено (09 Марта 2014, 13:09) ---------------------------------------------
Цитатаmishem ()
А мож просто выпить надо?
Только подумал, решение нашел, а если выпить?
Добавлено (09 Марта 2014, 13:46) --------------------------------------------- Вот пример. Вроде все просто, но... Что это за число 7000, и что означает в конце слово Остаток7 ума не дам... Не хочешь читать хелп?
Мишем я не понимаю. что ты упёрся и не хочешь глянуть пример Андрея... там раскинуто всё четко по полочкам. Учитывается и февраль и високосный год, и ещё кое чего... синтаксис mmb намного понятнее остальных языков которые приводятся в примерах в нете... с переменными как что и почему получается могу объяснить если будет не понятно. Или вон Юра, думаю тоже поможет разобраться. Тут именно тот случай когда нафиг не надо изобретать велосипед...
Учитывается и февраль и високосный год, и ещё кое чего
Да почему уперся то? В принципе я так и предполагал. Посмотри ты мне портянку какую выложил. А выше три строчки которые высчитывают количество дней в месяце с учетом високосного года.
Со вторым вопросом вроде тоже все понятно, но вот теперь засада как в нб получить mod Не хочешь читать хелп?
Да нет, как сделать знаю. Я просто думал мож готовая функция где в НБ есть. Типа как ниже Trunc.
Готово в принципе. Теперь проверять надо. Кто первый?
Получаем день недели по указанной дате.
Код
.1. Обозначим число, месяц и год соответственно d, m и y. .2. Если m <= 2 (т.е. месяц январь или февраль), то год уменьшим на 1, а число увеличим на 3: . y:= y–1; . d:= d+3; .3. Теперь номер дня недели (w) вычисляется по следующей формуле: . w:= 1 + [d + y + y/4 – y/100 + y/400 + (31m+10)/12] mod 7; .(все операции деления — целочисленные, т.е. берется целая часть частного; mod — операция получения остатка от деления).
.Результатом будет целое число в диапазоне от 1 до 7, соответствующее дням недели от воскресенья до субботы .(1 — понедельник, 2 — вторник, 3 — среда, 4 — четверг, 5 — пятница, 6 — суббота, 7 — воскресенье).
Math "[d]+[y]+Trunc([y]/4)-Trunc([y]/100)+Trunc([y]/400)+Trunc((31*[m]+10)/12)" "0" "[Result]" Math "[Result]-Trunc([Result]/7)*7+1" "0" "[Result]"
Добавлено (09 Марта 2014, 15:36) --------------------------------------------- Ну а кто нибудь сможет мне объяснить зачем в этом примере прибавляется число 7000?
Ведь самое главное его практически везде копипастят.
Мне кажется эти вещи надо не додумывать, а в интернете искать готовое решение.
Лишняя разминка не помешает, а то можно и до копипасты скатится
Да и нужно исходить из потребностей. Вот тоже хочу календарь сделать (готовые решения меня опять не устраивают ) и вот там уже нужно более обдуманно подходить. А тот код всего лишь набросок для другой задачи, где реализация не так важна. Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)