@notify

...
  • Leency wrote:# плохой разделитель, лучше реже используемый символ, вроде |.
    А если символ не обрабатывать, а выводить как есть? Если @notify сама выведет chr(13),chr(10) - строчка сама не переведётся?

    Code: Select all

    nmsg db "Title", 13, 10, "String", 0
    Вот так не получится само собой 2 строки?
    Leency wrote:Ок, пусть будет "bAutoClose", но я всё равно сомневаюсь в его целесообразности, т.к. показ ошибок требующих _обязательного_ внимания пользователя не задача @notify в принципе, а программы которая выявила эту ошибку. В этом случае должно быть сообщение в той программе "Ошибка такая-то" и кнопка "Ок" (увидел, понял).
    Ну если эта возможность не добавляет много работы к уже существующей функциональности, то вреда от неё точно не будет, а польза определённо есть.
  • yogev, нет, две строчки не получится :)
  • Пока что без автозакрытия и флага на него
    Attachments
    NOTIFY (816 Bytes)
    Downloaded 279 times
    notify.asm (4.54 KiB)
    Downloaded 314 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
    • • Убрана кнопка закрытия, для закрытия нужно кликнуть на само уведомление
    • • Добавлено автозакрытие через некоторое время (зависит от длины текста).
    • • Дублирование уведомления в BOARD
    Автозакрытие можно отключить, дописав в конце уведомления знак "~".
    Например:

    Code: Select all

    @notify Hello, World!!!~
    Для закрытия такого уведомления нужно кликнуть по нему.

    Планируется добавить полупрозрачность(под вопросом).
    Пишите свои предложения.
    Attachments
    @NOTIFY.ASM (4.86 KiB)
    Downloaded 274 times
    @NOTIFY (913 Bytes)
    Downloaded 269 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
    если 29-й бит edx установлен - не рисовать рамку при нажатии на кнопку
    если 30-й бит edx установлен - не прорисовывать кнопку
  • Исправлю, спасибо. Проверьте текст, а то я не уверен, правильно ли я написал
  • Вообщем все. Нефига не все. Сейчас буду пилить многострочность Пока делал, многое узнал.

    @notify

    Отличия от предыдущей версии (той что от Leency):
    • Изменен внешний вид приложения:
      • Убрана полупрозрачность
      • Сдвиг окошка от края
    • Уведомление закрывается по клику
    • Учет местонахождения панели при расчёте координат (уведомление не налезает на панель)
    • Дублирование уведомлений в BOARD с указанием времени
    • Возможность добавления важных уведомлений (то есть тех, которые по истечению времени сами не закроются).
    • Код написан на FASM, что теоретически должно сделать программу быстрее и меньше по размеру. Правда же такова, что размер уменьшился всего на 400 байт.
    Для вызова важных уведомлений нужно в конец текста дописать символ "~"
    Пример

    Code: Select all

    // Данное уведомление закроется после определенного промежутка времени
    @notify Привет, мир!
    // А это закроется только после того, как пользователь его увидит и нажмет на него
    @notify Привет, мир!~
    
    Attachments
    1.jpg
    1.jpg (47.53 KiB)
    Viewed 6228 times
    @NOTIFY.ASM (5.82 KiB)
    Downloaded 276 times
    @NOTIFY (1.13 KiB)
    Downloaded 265 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"
    eAndrew wrote:Код написан на FASM, что теоретически должно сделать программу быстрее и меньше по размеру. Правда же такова, что размер уменьшился всего на 400 байт.
    А во время сравнения размеров ты учёл ещё паковку kpack?
    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, выравнивание у меня по левому, но наверное будет лучше сделать по правому. Только никак не могу рассчитать ширину окна.
  • eAndrew wrote:Делай, если хочешь). Разделитель 0x13, выравнивание у меня по левому, но наверное будет лучше сделать по правому. Только никак не могу рассчитать ширину окна.
    Как уже заметила CleverMouse, правильный разделитель 0x0A (10 decimal).
  • Who is online

    Users browsing this forum: No registered users and 3 guests