# плохой разделитель, лучше реже используемый символ, вроде |.
Ок, пусть будет "bAutoClose", но я всё равно сомневаюсь в его целесообразности, т.к. показ ошибок требующих _обязательного_ внимания пользователя не задача @notify в принципе, а программы которая выявила эту ошибку. В этом случае должно быть сообщение в той программе "Ошибка такая-то" и кнопка "Ок" (увидел, понял).
@notify
-
Из хаоса в космос
А если символ не обрабатывать, а выводить как есть? Если @notify сама выведет chr(13),chr(10) - строчка сама не переведётся?Leency wrote:# плохой разделитель, лучше реже используемый символ, вроде |.
Code: Select all
nmsg db "Title", 13, 10, "String", 0
Ну если эта возможность не добавляет много работы к уже существующей функциональности, то вреда от неё точно не будет, а польза определённо есть.Leency wrote:Ок, пусть будет "bAutoClose", но я всё равно сомневаюсь в его целесообразности, т.к. показ ошибок требующих _обязательного_ внимания пользователя не задача @notify в принципе, а программы которая выявила эту ошибку. В этом случае должно быть сообщение в той программе "Ошибка такая-то" и кнопка "Ок" (увидел, понял).
yogev, нет, две строчки не получится
Пока что без автозакрытия и флага на него
- Attachments
-
-
NOTIFY (816 Bytes)Downloaded 283 times
-
notify.asm (4.54 KiB)Downloaded 317 times
-
Last edited by e-andrew on Wed Oct 09, 2013 9:13 pm, edited 2 times in total.
Лучше исходник прикреплять
to infinity and beyond
@notify
asm-версия 0.8b
Например:
Для закрытия такого уведомления нужно кликнуть по нему.
Планируется добавить полупрозрачность(под вопросом).
Пишите свои предложения.
asm-версия 0.8b
- • Убрана кнопка закрытия, для закрытия нужно кликнуть на само уведомление
- • Добавлено автозакрытие через некоторое время (зависит от длины текста).
- • Дублирование уведомления в BOARD
Например:
Code: Select all
@notify Hello, World!!!~
Планируется добавить полупрозрачность(под вопросом).
Пишите свои предложения.
- Attachments
-
-
@NOTIFY.ASM (4.86 KiB)Downloaded 276 times
-
@NOTIFY (913 Bytes)Downloaded 271 times
-
Last edited by e-andrew on Wed Oct 09, 2013 10:25 pm, edited 1 time in total.
Такой надо сразу на SVN и в автозборку
to infinity and beyond
Нужно чтобы программа появлялась сверху экрана.
Я так понимаю, отступ сделан на тот случай, если панель задач сверху. Это решается функцией получения клиентской области экрана.
Лучше сделать не кнопку, а событие мыши и закрывать в тот момент, когда нажата левая кнопка мыши на нём. Ну или на худой случай скрыть ободок после нажатия на кнопку.
>> Автозакрытие можно отключить, дописав в конце уведомления знак "~".
А вот это - оличное решение.
Я так понимаю, отступ сделан на тот случай, если панель задач сверху. Это решается функцией получения клиентской области экрана.
Лучше сделать не кнопку, а событие мыши и закрывать в тот момент, когда нажата левая кнопка мыши на нём. Ну или на худой случай скрыть ободок после нажатия на кнопку.
>> Автозакрытие можно отключить, дописав в конце уведомления знак "~".
А вот это - оличное решение.
Из хаоса в космос
Code: Select all
mcall 8, <edi, 10>, <4, 10>, 0x40000001, 0x00AAAAAA
Code: Select all
mcall 8, <edi, 10>, <4, 10>, 0x60000001, 0x00AAAAAA
если 30-й бит edx установлен - не прорисовывать кнопку
Исправлю, спасибо. Проверьте текст, а то я не уверен, правильно ли я написал
@notify
Отличия от предыдущей версии (той что от Leency):
- Изменен внешний вид приложения:
- Убрана полупрозрачность
- Сдвиг окошка от края
- Уведомление закрывается по клику
- Учет местонахождения панели при расчёте координат (уведомление не налезает на панель)
- Дублирование уведомлений в BOARD с указанием времени
- Возможность добавления важных уведомлений (то есть тех, которые по истечению времени сами не закроются).
- Код написан на FASM, что теоретически должно сделать программу быстрее и меньше по размеру. Правда же такова, что размер уменьшился всего на 400 байт.
Пример
Code: Select all
// Данное уведомление закроется после определенного промежутка времени
@notify Привет, мир!
// А это закроется только после того, как пользователь его увидит и нажмет на него
@notify Привет, мир!~
- Attachments
-
-
1.jpg (47.53 KiB)Viewed 6372 times
-
@NOTIFY.ASM (5.82 KiB)Downloaded 280 times
-
@NOTIFY (1.13 KiB)Downloaded 269 times
-
Всё-таки очень хотелось бы ещё поддержку многострочности, пусть даже через знак #, если тебе так удобно.eAndrew wrote:Вообщем все.Нефига не все. Сейчас буду пилить многострочность Пока делал, многое узнал.
eAndrew « Thu Oct 10, 2013 8:12 pm » если я сделаю многострочность, то скорость запуска немного замедлится, так как теперь нужно будет бежать по каждому пикселю по высоте. нормально?
eAndrew « Thu Oct 10, 2013 8:13 pm » я это уже реализовывал, но потом удалил, так что особых трудностей не возникнет
eAndrew « Thu Oct 10, 2013 8:13 pm » в качестве символа перевода будет \n (0xA)
yogev_ezra « Thu Oct 10, 2013 8:14 pm » eAndrew: \n гораздо лучше, конечно. Я просто понял, что тебе такой значок не удаётся сделать.
eAndrew « Thu Oct 10, 2013 8:16 pm » Просто я незнаю, как асм будет обрабатывать "qwe\nrty", как строку "qwe\nrty", а не "qwe*новая строка*rty"
А во время сравнения размеров ты учёл ещё паковку kpack?eAndrew wrote:Код написан на FASM, что теоретически должно сделать программу быстрее и меньше по размеру. Правда же такова, что размер уменьшился всего на 400 байт.
eAndrew « Thu Oct 10, 2013 8:07 pm » что за kpack?
yogev_ezra « Thu Oct 10, 2013 8:09 pm » eAndrew: Родной архиватор KolibriOS. Ты, наверное, сравнивал размер заархивированного @notify на C-- с незаархивированным своим на ASM.
yogev_ezra « Thu Oct 10, 2013 8:10 pm » eAndrew: Если твою версию тоже заархивировать, она станет ещё в 1.5-2 раза меньше.
eAndrew « Thu Oct 10, 2013 8:10 pm » так тут еще и архиватор есть.... *свист*)
eAndrew « Thu Oct 10, 2013 8:10 pm » и программа не замедляется?
yogev_ezra « Thu Oct 10, 2013 8:14 pm » eAndrew: Для программ на 1KB замедление из-за архиватора на микросекунды, человеческим глазом незаметно и даже компьютером не всегда удаётся померять. Для больших программ - да, заметно, например для FPLAY замедление на 5-10 секунд. Но, поскольку архиватор работает только во время запуска программы, а программы вроде FPLAY запускают один раз и потом пользуются много раз, то эту разницу можно принять.
yogev_ezra « Thu Oct 10, 2013 8:16 pm » eAndrew: Вот программы, которые часто запускаются и сразу же закрываются, если они ещё и большие, то лучше не архивировать, конечно. Например, если б @notify была размером с FPLAY, то при её предназначении, конечно, лучше её не архивировать. Но так как она занимает 1KB, то всё нормально и можно архивировать.
а можно я внесу поддержку многострочности?) прямо сюда, прямо сегодня!!!
вопросов собственно несколько:
Нужен ли вообще разделитель, могу просто основываясь на длинне данных делить на слова и выводить?
всем подойдет разделитель 0x13, если нужен разделитель?
и какое выравнивание делать, по центру или по левому краю с отступом?
вопросов собственно несколько:
Нужен ли вообще разделитель, могу просто основываясь на длинне данных делить на слова и выводить?
всем подойдет разделитель 0x13, если нужен разделитель?
и какое выравнивание делать, по центру или по левому краю с отступом?
Делай, если хочешь). Разделитель 0x13, выравнивание у меня по левому, но наверное будет лучше сделать по правому. Только никак не могу рассчитать ширину окна.
Как уже заметила CleverMouse, правильный разделитель 0x0A (10 decimal).eAndrew wrote:Делай, если хочешь). Разделитель 0x13, выравнивание у меня по левому, но наверное будет лучше сделать по правому. Только никак не могу рассчитать ширину окна.
Who is online
Users browsing this forum: No registered users and 0 guests