Форум
Написать нам
Страница 1 из 131231213»
Модератор форума: Peter 
Форум MMB » Всё о программе Neo Book » Плагины для NB » Плагин zmFunctions (Некоторые функции для Neobook)
Плагин zmFunctions
PeterДата: Воскресенье, 10 Январь 2010, 04:49 | Сообщение # 1
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Тут на форуме не раз возникали замечания на тему, что в NeoBook не хватает тех или иных мелких, но иногда полезных функций.
Мне думается, что следует попытаться исправить эту ситуацию с помощью плагина, т.к. VB или Java знают далеко не все необукеры, к тому же, на мой взгляд, плагин намного более эффективное средство нежели чем, например, тот же VBS.
С учетом последнего вопроса об анимации внешних необушных окон, решил реанимировать свой самый первый плагин, который давно-давно делал.
Пока это только пробная (на тестирование) версия. Но если все будет в порядке, то плагин можно будет выложить официально.
А пока в архиве (см.прикрепление) находятся две версии плагина (Design и Runtime), зародыш справки, и демка.
Вот список функций:

Пока совсем немного функций, но со временем, по мере надобности, будем его дополнять.
Кстати, у "анимации окон" есть некоторые ограничения...

Мне думается, что ближайшей задачей будут некоторые "файловые" функции, отсутствующие в штатном необушном арсенале.

Да, сорри, кажется функция плагина "об ошибках" пока работает вхолостую, т.к. не задействована реально.

Убедительная просьба потестить сие творение на предмет поиска ошибок, и высказать замечания/пожелания.

Последняя версия - в прикреплении.

Прикрепления: zmFunctions_1.0.rar(402Kb)


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
СергейДата: Воскресенье, 10 Январь 2010, 11:12 | Сообщение # 2
Необукер
Группа: Проверенные
Сообщений: 2332
Репутация: 24
Награды: 13
Статус: Offline
Quote (Peter)
Пока это только пробная (на тестирование) версия
Петр супер!, потестим :)

Добавлено (10 Январь 2010, 10:35)
---------------------------------------------
Порадовали много функций

Quote (Peter)
Мне думается, что ближайшей задачей будут некоторые "файловые" функции,
высказать замечания/пожелания.
в раздел "Файлы и папки" мона добавить функцию удаления папки(в месте с содержимым)
и если не проблемно-поиск в папке нужного файла(имя, маска?!)

Добавлено (10 Январь 2010, 11:12)
---------------------------------------------
Нет слов, первый тест и все положительные результаты. Мне как раз нужна была функция размера папки, а метод ВБС частенько входит в ступор
Спасибо, отличное начало!




Сообщение отредактировал sp3d - Воскресенье, 10 Январь 2010, 11:09
 
Alex3AДата: Воскресенье, 10 Январь 2010, 12:21 | Сообщение # 3
Друг клуба ММВ
Группа: Проверенные
Сообщений: 3022
Репутация: 31
Награды: 11
Статус: Offline
Ну вот, уже что то! Особенно про окна. Добавь еще поиск чилдренов и замену парентов,
можно будет и пофулиганить :D
По крайней мере фича будет весьма интересная.
 
ВадимДата: Понедельник, 11 Январь 2010, 10:14 | Сообщение # 4
Ветеран форума
Группа: Проверенные
Сообщений: 707
Репутация: 8
Награды: 2
Статус: Offline
Quote (Alex3A)
имплантировать в чужую прогу и пищать ею до опупения, из чужого окна

Замечательная идея :D !!!
А вообще, действительно, иметь возможность разместить вызов своей проги в другой проге - интересная возможность!

Первые наблюдения по плагину.
Прикольно исчезает, "медленно растворяясь" окошко "О плагине" (Опции => Установка плагина). :) Я сначала подумал, что это мой комп подвис :))).

Проверял работу по прилагаемому к плагину тестовому файлу в системе WinXP SP3.

В режиме тестовой компиляции
Кнопка "А что у нас с заставкой экрана?" выводит окошко "Влючена!!!" (не хватает буквы "к"), хотя заставка у меня отключена.
Кнопка "Включить заставку" не включила заставку. Проверял в "свойствах экрана" - заставка по прежнему "нет". Аналогично не сработали кнопки "Включить заставку" и "Запустить заставку". Остальное на первой странице тестового приложения работает. На следующей странице (работы с окнами) выдает ошибку, но возможно потому, что я не выставил класс окна, я не знаю что это такое. Предположил, что возможно дело в тестовой компиляции, поэтому скомпилировал тестовый файл.

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

Оп! Кажется разобрался почему. После компиляции тестового приложения из NB почему-то исчез плагин zmFunctions. Вероятно это связано с тем, что скомпилировав тестовое приложение я проверил функцию "перезагрузка" и NB был принудительно закрыт плагином, как и другие программы. По всей видимости при таком закрытии установка плагина просто не сохранилась. А может это мой файрволл в первый раз шутканул... Потому, как сообщал мне о попытке запуска изменившегося исполняемого файла (при запуске тестовой компиляции). Установил плагин заново. Теперь кнопка "А что у нас с заставкой?" выдает верный ответ, но включить или запустить заставку плагином по-прежнему не удается. Возможно виной тому отключенные мною какие-то службы, не знаю, предполагаю только. Кстати, есть ли для работы плагина список необходимых служб?

Работа с окнами понравилась, особенно прозрачность и анимация окон! Класс!!!
Окна плагин находит, блокирует и освобождает, заголовок окна определяет и меняет, размер папки определяет верно и т.д. Вроде бы как и все остальное работает.

Заново скомпилировал тестовое приложение. Теперь оно работает!
Не понимаю, в чем была проблема... Видимо именно в том, что слетел плагин в первый раз. Попробовал перезагрузить NB, с плагином теперь все в порядке, не исчезает.

Плагин опять определил наличие заставки, что неверно, на самом деле заставки нет. После перезапуска NB плагин определяет отсутствие заставки верно и в тестовом, и в скомпилированном режимах. Не знаю, с чем могла быть связана ошибка в первом случае.

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

Есть ли смысл в эту библиотеку функций добавить те, что реализованы как zmKeyBoard и zmNet или там есть своя специфика?

Прикрепления: 9944900.png(26Kb)


С уважением, Вадим

Сообщение отредактировал VadimLevkin - Понедельник, 11 Январь 2010, 10:20
 
PeterДата: Понедельник, 11 Январь 2010, 15:06 | Сообщение # 5
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (VadimLevkin)
я проверил функцию "перезагрузка" и NB был принудительно закрыт плагином, как и другие программы. По всей видимости при таком закрытии установка плагина просто не сохранилась.

Семён Семеныч, ЕСТЕСССССТВЕННО!
Настройки-то не сохранилсь, и Neobook забыла, что у неё появился "бесценейший довесок".
Перед перезагрузкой компутера, вообще-то принято "сохраняться", и демка об этом, между прочим, ПРЕДУПРЕДИЛА, и предоставила альтернативу.
:D
Я вот думаю, а что если сделать в плагине коианды (пустышки естесственно)типа "Format C:\" или "Спалить материнскую плату", и дать на тестирование, найдуться рискОвые?
А потом будут ещё возмущаться мол "плагин кривой, не работает!" :)
По заставке экрана...
Там все работает так, как и должно работать: если заставка экрана отключена в настройках пользователя, то и запускать просто нечего. А включить заставку может только сам пользователь в "Свойствах экрана".
Иными словами, плагин будет работать с заставкой только если она в принципе включена пользователем, о чем имеется запись в соответствующей ветке Реестра, и если там "0", то плагин, хоть умри, заставку не включит/выключит, и не запустит!
Нет, технически это сделать, можно, но не дело влезать в пользовательские настройки.
Я, например, проги, которые пытаюся хозяйничать в моих "предпочтениях" удаляю моментально и больше никогда не устанавливаю!
А вот проверку включен ли скринсейвер, пожалуй можно и модернизировать будет с учетом записи в Реестре, сейчас плагии определяет это по одному критерию, а надо бы по двум.
Quote (VadimLevkin)
zmKeyBoard и zmNet или там есть своя специфика

А что это?...

Добавлено (11 Январь 2010, 15:06)
---------------------------------------------

Quote (Alex3A)
Эт не скажи!

ОК!
Я подумаю, что тут можно придумать. ;)

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
Alex3AДата: Вторник, 12 Январь 2010, 17:26 | Сообщение # 6
Друг клуба ММВ
Группа: Проверенные
Сообщений: 3022
Репутация: 31
Награды: 11
Статус: Offline
Да, не забудь вывести постмеседж, и мож подумаеш о сетвиндоврегион.
 
Alex3AДата: Вторник, 12 Январь 2010, 20:01 | Сообщение # 7
Друг клуба ММВ
Группа: Проверенные
Сообщений: 3022
Репутация: 31
Награды: 11
Статус: Offline
Quote (Peter)
Поясни, если можно.

В апи функции sendmessage postmessage, сенд выполняется сразу и требует возврата
результата, тюфу на нее, пост помещает сообщение в очередь сообщений и ответа не
требует. Смотри сообщения WM_ (и другие), фигня функция, а сколько может полезностей
делать, Аснова винды :D
 
mishemДата: Суббота, 16 Январь 2010, 20:20 | Сообщение # 8
Ветеран форума
Группа: Проверенные
Сообщений: 783
Репутация: 6
Награды: 3
Статус: Offline
Peter, Окна Neo Book. При выборе в стандартной команде Neo Book CustomWindow стиль окна FixedPos, окно при команде zmAnimateCustomWindow, открывается ТОЛЬКО в пределах окна проекта :( При выборе любого другого стиля, все прикрасно открываются за пределами окна. Жаль, то что именно нужно, не получается. :(

Добавлено (16 Январь 2010, 20:20)
---------------------------------------------
Еще, когда в поле "Сохранить результат в переменной" пишешь переменную без [] скобок, скобки автоматически не добавлябтся. Конечно это не столь важно, но по привычке можно не обратить на это внимание :(


Я люблю думать что умею рисовать
 
ВадимДата: Вторник, 19 Январь 2010, 03:10 | Сообщение # 9
Ветеран форума
Группа: Проверенные
Сообщений: 707
Репутация: 8
Награды: 2
Статус: Offline
Quote (Peter)
А пока чуть обновленная и подправленная версия плагина.
Прикольно! Плагин крепчает на глазах!!! thumbs_up Спасибо!
Quote (Peter)
Полностью переделаны команды диалогов выбора цвета и шрифта. Теперь окошки отображаются по центру экрана, а не "привязываются" к окну проекта.
Может глупость скажу (воспринимайте как рабочую гипотезу :)...), я подумал, а что если обе функции оставить в плагине, т.е. сделать управляемый параметр - отображение диалога выбора цвета и шрифтов а) с привязкой к главному окну программы и б) по центру экрана? Ведь все больше становится больших мониторов и если человек работает на таком, и разместил несколько программ по всему экрану, то диалог выскакивающий строго по центру может выглядеть не красиво и не функционально.
Quote (Peter)
сейчас интересует работоспособность "прилипания" в принципе

Ок, потестим с удовольствием! :)

С уважением, Вадим
 
PeterДата: Вторник, 19 Январь 2010, 03:20 | Сообщение # 10
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (Вадим)
то диалог выскакивающий строго по центру может выглядеть не красиво и не функционально.

Вообще-то, "по-центру экрана" принято "как в лучших домах ЛондОна и Парижу", а если серьезнне, то это - стандарный вариант отображения этих окон, применяющийся во всех (по крайней мере, известных мне) программах.
Между прочим, эти стандартные делфийские диалоги тоже выскакивают "по-центру"...

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
ВадимДата: Вторник, 19 Январь 2010, 03:34 | Сообщение # 11
Ветеран форума
Группа: Проверенные
Сообщений: 707
Репутация: 8
Награды: 2
Статус: Offline
Quote (Peter)
"как в лучших домах ЛондОна и Парижу"
Ну, это довольно старые "дома"...
:D
"Липкость" работает!!! Браво!!! По-моему, эту функцию уже давно ждали! thumbs_up
Только не пойму, так и должно пока быть, чтобы липкость внешнего окошка (а точнее его левого верхнего угла) всегда была строго привязана к левому краю (и даже определенному расстоянию от него) главного окна?
Меняю координаты и размер внешнего окна, оно смещается, но при передвижении внешнего окна прыгает строго на "свое место" слева от гл.окна, правда установленные размеры сохраняет. Но установленное относительно гл.окна положение не держит.

С уважением, Вадим

Сообщение отредактировал Вадим - Вторник, 19 Январь 2010, 03:37
 
PeterДата: Вторник, 19 Январь 2010, 04:06 | Сообщение # 12
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (Вадим)
всегда была строго привязана к левому краю

Это задается в той подпрограмме, которая назначается командой zmOnMoveSize, а там все просто - zmSetCustomWindowPos.

Добавлено (19 Январь 2010, 04:06)
---------------------------------------------
Но надо будет добавить ещё одну команду для более удобного и точного вычисления позиции необушного внешнего окна, т.к. у окна есть общие размеры, а есть и размеры клиентской части.
В принципе, эта команда (zmGetWindowRectangle) имеется для "вообще" окон, а специально для необушных нет.


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
ВадимДата: Вторник, 19 Январь 2010, 04:27 | Сообщение # 13
Ветеран форума
Группа: Проверенные
Сообщений: 707
Репутация: 8
Награды: 2
Статус: Offline
Quote (Peter)
Да, совершенно верно.
Ну, так вроде бы в NB все равно нельзя манипулировать размером меню (кроме как прибегая к стилю винды или отрекаясь от оного).
Кстати, иметь возможность делать свои размер, заливку, шрифт и фон для основного меню - было бы прикольно! Хотя бы заливку цвета свою, и то уже было бы интереснее!

С уважением, Вадим
 
PeterДата: Вторник, 19 Январь 2010, 04:47 | Сообщение # 14
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (Вадим)
в NB все равно нельзя манипулировать размером меню

Раговор не о манипулировании размером меню, а о вычислении позиции окон, т.к. на разных компьютерах, в зависимости от стиля оформления, могут быть разные толщина рамки, высота заголовка. А зная разницу в рамерах окна и его клиентской части можно вычислить толщину рамки, высоту заголовка, и в соответствии с этим рассчитывать нужную позицию окна, если потребуется, например, "прыгать" от размеров клиентской части.
Кстати, сама NeoBook считает координаты от верхнего левого угла именно клиентской части главного окна без учета заголовка.
Quote (Вадим)
иметь возможность делать свои размер, заливку, шрифт и фон для основного меню - было бы прикольно! Хотя бы заливку цвета свою, и то уже было бы интереснее!

Ну вот, пошло-поехало!...
Нет, прав Алекс!
Тыщу раз прав!...
:D

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
mishemДата: Вторник, 19 Январь 2010, 16:26 | Сообщение # 15
Ветеран форума
Группа: Проверенные
Сообщений: 783
Репутация: 6
Награды: 3
Статус: Offline
Peter, Мож Я что не правильно делаю, но у меня получается вот что. При открытии проекта создаю и прячу окно
Code

CustomWindow "" "-1" "4" "Container2" "NoBorder"
zmShowCustomWindow "Container2" "Hide"

Координаты как видешь -1 и 4, далее
Code

zmOnMoveSize "OnMove"
zmAnimateCustomWindow "Container2" "SlideRight" "100" "True"

Где OnMove
Code

zmSetCustomWindowPos "Container2" "298" "-3" "" "" "" ""

с координатами 298 и -3, так вот, пока основное окно не двинешь в какую нибудь сторону, Container2 будет открываться по координатам -1 и 4. Если окно подвинуть в сторону не дав еще ни какой команды, а потом запустить скрипт
Code

zmOnMoveSize "OnMove"
zmAnimateCustomWindow "Container2" "SlideRight" "100" "True"

опять Container2 будет открываться по координатам -1 и 4. и только после того как окно опять подвинешь в какую либо сторону, начнет открываться именно там где надо. Тоесть в том месте окна где нужно было с самого начала.

Я люблю думать что умею рисовать

Сообщение отредактировал mishem - Вторник, 19 Январь 2010, 16:27
 
PeterДата: Вторник, 19 Январь 2010, 21:37 | Сообщение # 16
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (DEMBEL)
просто детектить нажатие пкм и предоставить самому решать что делать

Именно это я и планирую делать. Будет один хук на все окно приложения, а детектировать на каком объекте при этом находится мышь прекрасно можно и средствами самой NeoBook. :)
Но я ещё и не начинал пока, только домой ввалился...
Quote (Вадим)
Присоединяюсь к просьбе!

:)
Quote (mishem)
пока основное окно не двинешь в какую нибудь сторону, Container2 будет открываться по координатам -1 и 4.

Совершенно справедливо - так оно и должно быть, ведь команда двигающая окно не запущена.
Нужно дать пояснение:
В Windows все происходит событийно!
Команда плагина zmOnMoveSize не начинает движение никаких окон, а только назначает реакцию на событие перемещения и/или изменения размера главного окна приложения.
Вот рисунок:
Стрелкой указаны закладки, в которых мы прописываем скрипты, выполняющиеся при наступлении событий, указанных на этих закладках.
Представьте, что команда zmOnMoveSize просто как бы добавляет ещё одну закладку в эти дела, но с той разницей, что события этой "виртуальной закладки" можно в любой момент включать/отключать и переопределять в зависимости от ситуации.
Ещё раз...
zmOnMoveSize всего-лишь назначает подпрограмму, которая начнет выполняться только с началом (событием) перетаскивания главного окна и/или изменении его размеров!
Quote (mishem)
опять Container2 будет открываться по координатам -1 и 4.

Контейнер и открывается там, куда ты его сам поставил.
:)
И ещё одна тонкость: команды, идущие по скрипту за zmAnimateCustomWindow, начнут выполняться после того как анимация "отработает".

Добавлено (19 Январь 2010, 21:37)
---------------------------------------------
Пожалуй, надо будет переименовать с zmOnMoveSize на zmSetOnMoveSize.
:)

Прикрепления: 7077606.png(15Kb)


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Вторник, 19 Январь 2010, 21:39 | Сообщение # 17
Наш дизайнер
Группа: Модераторы
Сообщений: 2508
Репутация: 27
Награды: 15
Статус: Offline
Quote (Peter)
а детектировать на каком объекте при этом находится мышь прекрасно можно и средствами самой NeoBook.

это как это так? по координатам смотреть чтоли или как?
 
PeterДата: Вторник, 19 Январь 2010, 21:55 | Сообщение # 18
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (DEMBEL)
это как это так?

У всех "нужных" объектов NeoBook есть события MouseEnter и MouseExit (вот жаль только, что не у всех есть "правая кнопка мыши").
Есть такая переменная [Self] Подробнее см. файл справки.
Детектить так:
Берем ListBox (у которого нет реакции на правую кнопку), и в его события MouseEnter и MouseExit соотвественно прописываем команды SetVar "[Object]" "[Self]" и SetVar "[Object]" "". В результате при наведении мыши на ListBox в переменной [Object] оказывается имя объекта, а при уходе мышки переменная пустеет.
А дальше в зависимости от имени объекта делаем что нужно.
:)
Можно и не имя объекта, а цифру какую-нибудь. Что больше понравится.
А можно и координаты считать, но это более хлопотно, хотя и не отменяется...

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Суббота, 23 Январь 2010, 13:05 | Сообщение # 19
Наш дизайнер
Группа: Модераторы
Сообщений: 2508
Репутация: 27
Награды: 15
Статус: Offline
клево! маска работает, и анимация! только я маленько не вкурил - маска применяется к окну только когда оно уже создано? но тогда заметен момент применения маски, как тут разрулить? может создавать окно скрытым, применять маску и показывать? Или создавать где-то в невидимой области? Да и анимация применяется к окну тоже только после создания. По-видимому, нада момент создания окна еще проконтролировать, чтобы он был незаметен.
 
PeterДата: Суббота, 23 Январь 2010, 15:04 | Сообщение # 20
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
DEMBEL, совсем забыл, блин... redface
У необушных внешних окон можно проконтролировать момент их создания.
По умолчанию у каждого такого окна есть два события OnOpen и OnClose.
Заголовок такой: Object_OnPOpen и Object_OnClose, где Object - имя объекта, на основе которого создается окно, например, Container1_OnOpen.
На событие OnOpen и можно повесить команду наложения маски, или все нужные события. Тогда окно можно создавать где угодно.
:)

Добавлено (23 Январь 2010, 14:35)
---------------------------------------------
Эти команды-события (OnOpen и OnClose) оформляются в виде подпрограмм, и прописываются в секции подпрограмм.

Добавлено (23 Январь 2010, 15:04)
---------------------------------------------

Quote (Peter)
это как, определить разрешение монитора и задать бОльшие координаты?

Да, и при этом ничего особенного не нужно, например:
Code
CustomWindow "Окно для маски" "[ScreenWidth]-10000" "-1" "Container1" "NoBorder"

:)

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
PeterДата: Воскресенье, 24 Январь 2010, 10:40 | Сообщение # 21
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (mishem)
не догоняю... Но сам глянь

Я понял твою задумку.
Подправленный прект см.в прикреплении.

Следует помнить: подпрограмма (событие) On_Open для создаваемого окна выполняется (наступает) ДО момента отображения окна, т.е. как бы ДО срабатывания команды CustomWindow. Поэтому, если мы на это событие навесим скрыть окно (а дескриптор уже имеется), оно скроется, но снова отобразится при команде CustomWindow. Поэтому скрывать окно надо уже ПОСЛЕ CustomWindow, а окно создавать ЗА пределами экрана.

Также OnClose выполняется ДО мемента закрытия (разрушения) окна,т.е. пока не выпониться то, что прописано в OnClose, окно НЕ закроется.

Кстати, скрытие объекты автоматически показываются, если они сипользуются для CustomWindow, т.е скрытиый контейнер специально показывать не надо, если на его основе создается внешнее окно.

Прикрепления: mask.rar(4Kb)


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
PeterДата: Воскресенье, 24 Январь 2010, 11:25 | Сообщение # 22
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (DEMBEL)
хитрый Peter, ты мой пример заставь не моргать

DEMBEL, ваша с mishem, ошибка в том, что вы создаете ещё раз УЖЕ СОЗДАННОЕ окно, отсюда и появляется моргание, так и должно быть в этом случае.
См.твой переделанный пример уже без всякого моргания, команду наложения маски я перенёс, но это в данном случае не принципиально, можно её и оставить на старом месте.

Окно, если оно уже создано не надо каждый раз создавать заново!
Как это проверить см. опять же в прикреплении.

Добавлено (24 Январь 2010, 11:25)
---------------------------------------------

Quote (mishem)
Peter, Все равно моргает

Я просто твой пример не довел до ума....
См. переделанный пример Дембеля!
Да и примером чуть раньше, я ТО ЖЕ САМОЕ показал.
НЕТУ У ВАС БОЛЬШЕ МОРГАНИЯ!!!

Интересно, что корнем слово "моргание" является, гм... :)

Прикрепления: maskDembel.rar(4Kb)


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
PeterДата: Воскресенье, 24 Январь 2010, 23:27 | Сообщение # 23
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (DEMBEL)
вы думали это все? ага, щаз... предлагаю провентилировать вопрос

Quote (DEMBEL)
но чтоб за курсором таскалось?

DEMBEL, ты меня убиваешь! :)
Даже в ММВ это давно делают!
Я только со дня рождения вернулся, но вот тебе подсказка "за курсором" в прикреплении!
5 минут работы...
И без всяких плагинов.

Расслабились, что ли, все?
Надо бы порядок "в танковых частях" навести! :)

Прикрепления: Hint.rar(2Kb)


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
PeterДата: Вторник, 02 Февраль 2010, 02:20 | Сообщение # 24
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Обновленная версия плагина (с парой "заказов") в прикреплении.
Новое и исправленное:
Quote

Добавились команды создания интерактивного значка в системном лотке (трее) zmTrayIcon, а также настраеваемой всплывающей подсказки в трее zmTrayBalloon, и, в придачу, команда zmDeleteTrayBalloon.

Добавилась команда перекодировки текстовых строк zmConvertString. На данный момент AnsiToUTF8, UTF8ToAnsi, WinToKoi, KoiToWin.

Добавилась возможность слежения за изменением содержимого буфера обмена - команда zmClipboardMonitor .

Добавилась команда zmExitWindows как расширенная замена команд zmLogOff, zmReboot, zmShutdown. Эти три команды упразднены.

Изменения:

Видоизменена команда наложения маски на внешнее окно NeoBook zmSetCustomWindowMask - параметры поменялись местами!!!

........................................

Расширена интеграция интерфейса плагина в GUI NeoBook - теперь плагин умеет работать с именами файлов через оригинальные необушные диалоги и управлять файлами точно так же, как и сама программа.

Усовершенствована поддержка вложенных файлов.

Приближен к новому оформлению NeoBook версии 5.6 вид кнопок мастеров плагина.

Исправлено множество мелких ошибок.

Какие наделал новые, пока не знаю.... :)

Большая просьба погонять во всевозможных режимах "монитор буфера", и желательно в куче с другими программами, тоже отслеживающими содержимое буфера (если таковые программы, конечно, имеются в наличии).

И какие ещё возможно будут нужны варианты перекодировки строк?


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
PeterДата: Вторник, 02 Февраль 2010, 21:40 | Сообщение # 25
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (DEMBEL)
сохранять в файл и отображать

Сохранять в файл в формата ВМР изображения (НЕ ФАЙЛЫ ИЗОБРАЖЕНИЙ) из буфера плагин можно научить без проблем уже сейчас, т.к. работать с форматом ВМР он может. Это пришлось в плагин ввести из-за маски, кстати, потому и маска формата ВМР должна быть.
Поддержка же формата JPG (про остальные пока вообще непонятно) потребует непроизводительного "раздувания" плагина. И хотя я вовсе не впадаю в "маразм маленького файла", делать единичные функции работы с картинками именно в этом плагине неразумно, т.к. задумывался он для всякой разной "мелочевки".
Тут нужен уже "специализированный" полноценный плагин.
У меня тоже возникала потребность в работе с картинками в буфере, но все откладывал в долгий ящик, да откладывал... :)
Может сейчас появится повод...

В принципе, может работать с буфером и плагин hpwImage, но правда, эта работа у него как-то очень странно организована. Во всяком случае, мне моих мозгов не хватило, чтобы понять логику автора плагина. А может я просто тупой. :)

Короче, если копирования ИЗОБРАЖЕНИЙ из буфера в файл формата ВМР устроит, то в этом плагине сделать можно.
Иначе - другой плагин делать.


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Вторник, 02 Февраль 2010, 22:14 | Сообщение # 26
Наш дизайнер
Группа: Модераторы
Сообщений: 2508
Репутация: 27
Награды: 15
Статус: Offline
Quote (Peter)
Короче, если копирования ИЗОБРАЖЕНИЙ из буфера в файл формата ВМР устроит, то в этом плагине сделать можно. Иначе - другой плагин делать.

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

Добавлено (02 Февраль 2010, 22:14)
---------------------------------------------

Quote (Peter)
И какие ещё возможно будут нужны варианты перекодировки строк?

да, кстати, тут одно время мучались откодировать ссылки в URL-encoded c кириллицей (с википедии например).
 
PeterДата: Среда, 03 Февраль 2010, 02:59 | Сообщение # 27
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline

Подправленная и чуть условно-обновленная версия плагина: исправлен упомянутый баг, и добавлена (наспех пока) команда типа "Открыть файл в программе по умолчанию" специально для нужд Вадима Лёвкина!
:)

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Среда, 03 Февраль 2010, 14:03 | Сообщение # 28
Наш дизайнер
Группа: Модераторы
Сообщений: 2508
Репутация: 27
Награды: 15
Статус: Offline
 
ВадимДата: Среда, 03 Февраль 2010, 15:04 | Сообщение # 29
Ветеран форума
Группа: Проверенные
Сообщений: 707
Репутация: 8
Награды: 2
Статус: Offline
Quote (Peter)
"Открыть файл в программе по умолчанию"
Обнаружилась техническая неувязка. Команда работает, но только в тестовом режиме. В скомпилированном - нет. Проверено на двух компах. Выдает ошибку:
Прикрепления: 2034411.png(12Kb)


С уважением, Вадим
 
PeterДата: Среда, 03 Февраль 2010, 15:19 | Сообщение # 30
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2545
Репутация: 35
Награды: 14
Статус: Offline
Quote (Вадим)
Выдает ошибку

Все верно, т.к. к компиляции идет RunTime плагин, который я с дуру забросил ещё в самый первый вариант плагина.
Но в нем нет массы функций, которые появились позжее.
Удали его просто на фиг и все, и к компиляции автоматом пойдет Designtime вариант.

Но только в нынешнем виде плагин не сгодится для "конечного продукта" - когда запустишь скомпилированный экзешник, увидишь. ;)


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
Форум MMB » Всё о программе Neo Book » Плагины для NB » Плагин zmFunctions (Некоторые функции для Neobook)
Страница 1 из 131231213»
Поиск: