Часы, просто симпатичные часики...

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 13.12.2007 (Чт) 11:28

Очень жаль, что автор решил забить на доработку своих часиков :(
Лучший способ понять что-то самому — объяснить это другому.

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 20.12.2007 (Чт) 1:15

На дворе зима, а проект немного оттаил. :)

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

Но а главное, это конечно появление поддержки скинов, правда пока тока бетта версия.

В архиве: Сами часы (естественно), демо скин (несколько часов его рисовал, хотел сделать стандартным, но мне непонравилось каким он получился), и скинМэйкер.
Инструкция к скинМэйкеру (вдруг кто захочет свой скин навоять):
В папку с экзешником кидаете 4 tga - шных файла 32-х битных. Переименовываете в 1.tga, 2.tga, 3.tga, 4.tga. Где 1- циферблат, 2-часовая стрелка, 3-минутная, 4-секундная. Запускаете SM.exe, в этойже папке появиться файлик скина. (правдо он будет с расширением *.s, а надо *.dcs)
(!) Примечание: Все файлы должны быть 195*195.
P.S. Баг, про который говарил Хакер, остался, но со следубшим обновлением, скорее всего уберу.
У вас нет доступа для просмотра вложений в этом сообщении.
С=[::::::::::> ™ e398wallpapers.narod.ru

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 20.12.2007 (Чт) 4:23

P.S. Баг, про который говарил Хакер, остался, но со следубшим обновлением, скорее всего уберу.

Боже, неужели так сложно вызвать VirtualProtect для массива байт?

Одна строчка кода всего-то, если делать не идеально. А если идеально, то три.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 20.12.2007 (Чт) 10:49

1)
А лучше "Прозрачность".
А совсем хорошо
Кликать через -> Прозрачность для мыши
Видимость -> Прозрачность для глаз

2)
t116 наверное имеет ввиду, что ничего не происходит. Стрелки игнорируют изменение времени.

3)
Часы уверенно грузят проц на двоечку согласно taskmgr'овским единицам, даже когда их не видно. Для сравнения, что-то играющий винамп - 0. Чем же часы занимаются целую секунду пока не возникнет потребность перерисовать стрелку? Время не проверяют, видимость не проверяют, но что-то упорно делают.

4)
Все еще не реализована возможность самостояльного введения периода или даты/времени сна.

5)
About продолжает улучшаться. Но совершенству нет предела.
Поток пластиковой крови стоит заменить на какой-то более безобидный образ или сюжет, например связанный со временем. Кроме того тень от гребня искажает буквы Cl, читается как СN или СV. Игривую надпись наверху убрать. Это не выставка шрифтов.
Ничего из этого не сделано. А между тем пункты 3 и 4 критические.

Еще одна бага: иногда в режиме "кликать через" часы начинают дергаться впаво-влево каждую секунду. Лечится отключением этого режима и перетаскиванием часов. Если включить обратно не перетаскивая, дергания восстанавливаются.

Если не шаманить с файлами, то SM.exe создает два пустых файла 1.tga и skin.s и вываливается с ошибкой subscript out of range.
Боже, неужели так сложно вызвать VirtualProtect для массива байт?

Одна строчка кода всего-то, если делать не идеально. А если идеально, то три.

Код: Выделить всё
Private Declare Function VirtualProtect Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long
Const PAGE_EXECUTE_READWRITE  As Long = &H40&

Call VirtualProtect(byteArr(0), UBound(byteArr) + 1, PAGE_EXECUTE_READWRITE, UBound(byteArr) * 2 +1)       
За првильность последнего параметра не ручаюсь.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 20.12.2007 (Чт) 11:12

Последним параметром должна быть переменная, в которую функция запишет старые атрибуты защиты.

Второй параметр также неверен. Долден быть (UBound(..) - LBound(..)+1)*4. В принципе, это не очень страшно - т.е. и твой код будет работать. Но если массив лежит на границе двух страниц, и начало массива отстаёт от правой границы страницы более чем на UBound(..) байт - то код на полпути обломается.

Но вообще, лучше выделять отдельную страницу под кодовый массив. А то мы так совсем левые данные заодно с нашим массивом делаем исполняемыми.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 20.12.2007 (Чт) 15:58

|( () ( T |/| |(
Хорошие часики, красивые, только изюминки в них нету. А добавь изюминку - возможность переключаться на 24-часовой циферблат. Все просто... Даже делать ничего не надо - я все сделал. Исходник прилагается
:roll:
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось Денис 27.12.2007 (Чт) 13:49, всего редактировалось 3 раз(а).
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 20.12.2007 (Чт) 17:48

Хакер писал(а):Боже, неужели так сложно вызвать VirtualProtect для массива байт?

Не сложно, просто у меня этой ошибки нету, и я про это и забыл. Вспомнил когда уже пост писал.

Antonariy, Прозрачность для глаз - это бред какойто ))
2) В начале новой минуты, они покажут изменённое время. (лично я нетак уж часто меняю время, так что минуту могу и подождать)
3) У меня они грузят на 2, только когда поворачивают стрелку (Р 2800), если у кого очень слабый проц, то могу выложить версию с кучей стрелок, под каждым углом :) А насчёт винампа - вопервых он не на VB написан, а вовторых с чегобы ему проц грузить.
4) Хочу избежать диалоговых окон, поэтому пока и не добавляю эту функцию. Но уже есть идея как реализовать без окон, так что скоро будет.
5) Если в начале 2008 проект ещё будет жить, то about точно измениться.

Обновления:
Баг имени Хакера, надеюсь, исчез. (это надо проверить)
Часы больше не дергаються.


Денис, 24-х часовой циферблат это, по мне, несуразный бред. С такимже успехом можно циферблат на 7 дней сделать )
У вас нет доступа для просмотра вложений в этом сообщении.
С=[::::::::::> ™ e398wallpapers.narod.ru

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 20.12.2007 (Чт) 18:12

|( () ( T |/| |( писал(а):2) В начале новой минуты, они покажут изменённое время. (лично я нетак уж часто меняю время, так что минуту могу и подождать)


Ну а я часто усыпляю свой компьютер. И как правило после включения твои часы показывают неправильное время. И показывают до тех пор пока не стукнет 00 секунд. Я лучше на часы в области уведомлений посмотрю чем буду ждать пока на твоих стрелки тормозят. Неужели это так трудно исправить? Хотя бы даже так:

Код: Выделить всё
if hour(now)<>prevhour or minute(now)<>prevminute then
    prevhour=hour(now)
    prevminute=minute(now)
    call movearrows ' изменить положение стрелок
end if

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 20.12.2007 (Чт) 18:46

t116, спешиал фо ю :)
У вас нет доступа для просмотра вложений в этом сообщении.
С=[::::::::::> ™ e398wallpapers.narod.ru

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 20.12.2007 (Чт) 19:27

Antonariy, Прозрачность для глаз - это бред какойто ))
"Кликать через" - бред не меньший ))
3) У меня они грузят на 2, только когда поворачивают стрелку (Р 2800), если у кого очень слабый проц, то могу выложить версию с кучей стрелок, под каждым углом А насчёт винампа - вопервых он не на VB написан, а вовторых с чегобы ему проц грузить.
У меня 2400, но все равно, такая загрузка проца от простых часов - не есть хорошо. А винамп я привел в качестве примера идеально оптимизированной программы. И на сях можно написать тормозное убожество, и на бейсике скоростное нечто. Найди прогу под названием VB Watch, с ее помошью можно выявлять тормозные участки кода. Выявишь - продемонстрируй, поможем оптимизировать.
4) Хочу избежать диалоговых окон, поэтому пока и не добавляю эту функцию. Но уже есть идея как реализовать без окон, так что скоро будет.
About уже не вписывается в эту концепцию. Клавный критерий наличия чего бы то ни было - полезность и удобство, а не абстрактные желания и представления о сферическом пользователе в вакууме.
Лучший способ понять что-то самому — объяснить это другому.

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 20.12.2007 (Чт) 19:45

|( () ( T |/| |( писал(а):t116, спешиал фо ю :)


Спасибо большое! :)

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 20.12.2007 (Чт) 20:46

Antonariy писал(а):"Кликать через" - бред не меньший ))

А может даже и больший ))

Я и без VB Watch, знаю вчём причина:
Я в Асме дуб, поэтому пришлось взять для врашения изображения, код неизвестного мне автора, а он работает только с 24-х битными. По этому приходиться врашать отдельно само изображение и маску к ниму, а потом объедитять. Еслиб ктонибуть подогнал бы кодик для 32-х битных, то можно былобы ускорить больше чем в 2 раза.

About уже не вписывается в эту концепцию.

About - исключение, без него ни как ))
С=[::::::::::> ™ e398wallpapers.narod.ru

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 20.12.2007 (Чт) 22:18

Incredibly.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 20.12.2007 (Чт) 22:28

|( () ( T |/| |(
Неподготовленным умам 24-часовой действительно может показаться бредом. Однако у него есть преимущества - время суток можно красиво нарисовать на циферблате.
Если кто не в курсе, то такие часы даже в реале есть... (гуглим по 24-hour analog clock) тока стоят дорого.
А вот если б ты такую опцию добавил... у твоих часиков появилось бы больше пользователей...
:roll:

а, вот кстати, что нагуглил я http://en.wikipedia.org/wiki/24_hour_analog_dial и еще http://www.24hourwatch.info/
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Q2W
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 745
Зарегистрирован: 31.01.2004 (Сб) 20:46
Откуда: Питер

Сообщение Q2W » 21.12.2007 (Пт) 2:24

Автор, выложи скрины хоть, а то непонятно, о чём тут все говорят, а ставить ничего не хочется.
Я знаю верный путь

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.12.2007 (Пт) 9:13

Q2W
Там не надо ничего ставит. Скачал запустил, закрыл, забыл.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 21.12.2007 (Пт) 9:23

|( () ( T |/| |( писал(а):можно циферблат на 7 дней сделать

конечно можно! :)
Добавить в таймер:

Код: Выделить всё
Dim DD As Single

...
Код: Выделить всё
DD = WeekDay(Now, vbUseSystemDayOfWeek)

...
Код: Выделить всё
Me.DrawWidth = 9
GetPosByArg (DD * 360 / 7), 50, -20, vbGreen
' (DD * 360 / 7) + (HH * 360 / MaxHour) / 7 - этот вариант, если нам надо прорисовать смещение стрелки по дню в зависимости от часа


так же можно с легкостью добавить счетчик дней, месяцев, лет и даже столетий. токмо стрелки двигаться не будуть :(
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.12.2007 (Пт) 10:30

Я в Асме дуб, поэтому пришлось взять для врашения изображения, код неизвестного мне автора, а он работает только с 24-х битными. По этому приходиться врашать отдельно само изображение и маску к ниму, а потом объедитять. Еслиб ктонибуть подогнал бы кодик для 32-х битных, то можно былобы ускорить больше чем в 2 раза.
Зачем там столько цветов? Стандартный скин можно уложить и в 24 бита.

Выкладывай код.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.12.2007 (Пт) 10:38

Ему ж с прозрачностью надо.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.12.2007 (Пт) 12:21

А прозрачность только для 32х бит работает?
Лучший способ понять что-то самому — объяснить это другому.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 21.12.2007 (Пт) 12:28

Antonariy
прозрачность это и есть тот дополнительный 8-бит канал, превращающий 24-битный рисунок в 32-х

R_G_B_____T
8 8 8 = 24 + 8 = 32


Всем
Я обновил свой пример часов в предыдущем посте. Сравните с творением автора топика. Посоветуйте, что со стрелками сделать? Идея с поворотом картинки меня не вставляет... А, и обратите внимание на шаг секундной стрелки - как на механических ;)

Кстати, |( () ( T |/| |(, на настоящих часах часовая стрелка в самом низу, за ней минутная, а сверху секундная. А у тебя наоборот - минутная, часовая, секундная. Ненатурально.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 21.12.2007 (Пт) 18:15

UPD 17:31
А вот мой вариант часов, основаный на скине виджета Analog Clock в Опере :) Обратите внимание на секундную стрелку. И еще... можно поставить галочку и часы будут тикать :)
У вас нет доступа для просмотра вложений в этом сообщении.

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 21.12.2007 (Пт) 19:26

А вот и конкуренты появились... Радует :))))
t116, тикают очень тихо. В sound forge гомкость wav-ки увелич.
С=[::::::::::> ™ e398wallpapers.narod.ru

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 21.12.2007 (Пт) 19:52

|( () ( T |/| |( писал(а):А вот и конкуренты появились... Радует :))))
t116, тикают очень тихо. В sound forge гомкость wav-ки увелич.


Специально умешьшил звук чтобы не отвлекали. :)
Я не конкурент, просто попытался свою идею подать. Обрати внимание на секундную стрелку. сделал бы у себя чтобы она тоже прыгала. а 24-часовой циферблат нужен.
Просто если ты будешь прислушиваться к пожеланиям пользователей, о твоем творении вскоре начнут говорить "оно читает мои мысли..." :)

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 21.12.2007 (Пт) 20:03

t116, я уже подумал насчёт 24-х часовым вариантом. В дольнейшем собираюсь заложить это в скины, тобиш чтоб можно было сделать скин с 24-х часовым цб. А насчет прыганья секундной - вот если найду код для врошения (про который писал, я кстати на wasm.ru попросил помоши, но пока както глухо) тогда можно будет добавить и такую фишку.
Специально умешьшил звук чтобы не отвлекали.

Как-то через чур ты его уменьшил, я когда запустил его совсем слышно небыло, хотя музыку при такой громкости слушаю в полне нормально, в смысле она не тихо играет.
С=[::::::::::> ™ e398wallpapers.narod.ru

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 21.12.2007 (Пт) 20:12

|( () ( T |/| |( писал(а):Как-то через чур ты его уменьшил, я когда запустил его совсем слышно небыло, хотя музыку при такой громкости слушаю в полне нормально, в смысле она не тихо играет.


Если будешь реализовывать это у себя, то сделай возможность регулирования громкости :)

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 21.12.2007 (Пт) 22:18

Похоже, я здесь больше не нужен. Исчезаю... :twisted:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 24.12.2007 (Пн) 16:04

У меня появилась идея. Сделай возможность скрытия часов при наведении курсора мыши на них. Предположим часы Ontop. И под часами находится какой-то текст, который они перекрывают. Чтобы прочитать этот текст надо подвести курсор в ту область, где находятся часы и они спрячутся до тех пор, пока курсор не будет убран.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 24.12.2007 (Пн) 16:42

Не вижу особого смысла от такой "игры в прятки"....

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 24.12.2007 (Пн) 16:59

Разве что отвести для этого небольшую облать...
Лучший способ понять что-то самому — объяснить это другому.

Пред.След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43

    TopList