Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Тут на форуме не раз возникали замечания на тему, что в NeoBook не хватает тех или иных мелких, но иногда полезных функций. Мне думается, что следует попытаться исправить эту ситуацию с помощью плагина, т.к. VB или Java знают далеко не все необукеры, к тому же, на мой взгляд, плагин намного более эффективное средство нежели чем, например, тот же VBS. С учетом последнего вопроса об анимации внешних необушных окон, решил реанимировать свой самый первый плагин, который давно-давно делал.
В архиве (см.прикрепление) находятся две версии плагина (Design и Runtime), подобие справки, и демка.
27.02.2011
Мышь и клавиатура
zmShowMousePointer - Показать/Скрыть указатель мыши. zmSetMouseMonitor - Установить монитор мыши. zmConfigMouseMonitor - Конфигурирование монитора мыши. zmDelMouseMonitor - Удалить монитор мыши. zmKBChangeLayout - Изменить раскладку клавиатуры для текущего активного окна. zmKBGetLayout - Определить раскладку клавиатуры для текущего активного окна.
zmColorBox - Отобразить диалог выбора цвета. zmFontBox - Отобразить диалог выбора шрифта. zmTrayIcon - Создать в системном лотке значок приложения. zmTrayBalloon - Отобразить сообщение в системном лотке. zmDeleteTrayIcon - Удалить значок из системного лотка. zmExitWindows - Завершение работы: выключение компьютера / перезагрузка /завершение сессии.
Окна
zmFindWindow - Найти окно по заголовку и имени класса. zmGetWindowHandle - Получить дескриптор (HWND) окна по заголовку. zmGetWindowTitle - Получить имя класса и/или текст заголовка окна. zmSetWindowTitle - Установить новый текст заголовка окна. zmShowWindow - Скрыть/Показать/Свернуть/Развернуть/Закрыть окно. zmSetWindowPos - Установить положение окна. zmSetWindowTransparent - Установить уровень прозрачности окна (Windows 2000 и выше). zmCancelWindowTransparency - Отменить свойство прозрачности окна и сделать его непрозрачным (W2k и выше). zmIsWindow - Определить состояние окна (видимость, свернуто, развернуто, и т.п.). zmEnableWindow - Сделать активным неактивное окно. zmDisableWindow - Сделать неактивным окно. zmGetWindowRectangle - Получить положение и размер окна. zmGetForegroundWindow - Получить дескриптор (HWND) верхнего окна в системе. zmSetForegroundWindow - Сделать верхним в системе и активизировать указанное (по дескриптору) окно. zmGetExeNameByHandle - Получить имя файла приложения по дескриптору окна. zmGetDesktopRectangle - Получить координаты области рабочего стола, не скрытой панелью задач.
Окна NeoBook
zmSetCustomWindowPos - Установить положение и размеры внешнего окна (CustomWindow) NeoBook . zmShowCustomWindow - Скрыть/Показать/Свернуть/Развернуть/Закрыть внешнее окно NeoBook. zmIsCustomWindow - Определить состояние внешнего окна NeoBook (видимость, свернуто, развернуто, и т.п.). zmEnableCustomWindow - Сделать активным неактивное внешнее окно NeoBook. zmDisableCustomWindow - Сделать неактивным внешнее окно NeoBook. zmSetCustomWindowTransparent - Установить уровень прозрачности внешнего окна NeoBook (W2k и выше). zmCancelCustomWindowTransparency - Отменить свойство прозрачности внешнего окна NeoBook и сделать его непрозрачным (W2k и выше). zmAnimateCustomWindow - Скрыть/Показать с анимационным эффектом внешнее окно (CustomWindow) NeoBook. zmSetCustomWindowMask - Наложить маску на внешнее окно (CustomWindow) NeoBook. zmShowInRectangle - Отобразить внешнее окно (Custom Window) в объекте прямоугольник
Главное окно
zmSetOnMoveSize - Назначить подпрограмму для события перемещения и/или изменения размера главного окна.
Файлы и папки
zmFolderSize - Определить размер в байтах указанного каталога (папки). zmDeleteFolder - Удалить папку (в т.ч. и непустую). zmOpenWithDefault - Открыть файл в программе "по умолчанию". zmCreateLink - Создать ярлык. zmFileGetAtrribute - Получить указанный атрибут файла или папки. zmFileSetAtrribute - Установить/Снять указанный атрибут файлу или папке. zmClearIECache - Очистить временную папку Internet Explorer.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
делал, кстати, когда небыло команды. В соседней ветке выложил работу плагина по атрибутам оба варианта. Жалко было удалять, всетаки труд был не малый....
Кстати, по-поводу буфера обме(а)на... Вот возможные форматы данных буфера. Какие конкретно "мониторить" требуется?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Вот возможные форматы данных буфера. Какие конкретно "мониторить" требуется?
Поскольку понял я там мало чего, пофантазирую... Извиняюсь, если шибко оторвано от действительности получится Вроде бы вверху (на странице про приведенной ссылке) указано:
Quote
Форматы буфера обмена, определяемые системой называются стандартными форматами буфера обмена.
Означает ли это, что система (Windows, если я правильно понял) сама распознаёт и возвращает дескриптор соответствующего содержания? Если так, то пусть система и определяет формат буфера, а плагин просто будет принимать изменившийся дескриптор. В результате будут мониториться они все и ни один в отдельности. Но уже реализованный старый вариант ("только текст") тоже надо оставить. Пригодится :). По идее, если мониторится буфер обмена вообще, то значит со всей его (как оказывается) тучей форматов. Но если нужен вариант "копировать из буфера всё", то какая нам разница какие там вообще существуют форматы? Или мониторить можно только по конкретным дескрипторам? Тогда, наверное, надо прописать их все, и не маяться. (только я, разумеется, не в курсе, что в данном контексте будет означать "прописать" ...).
Давайте расставим точки над "i"... Стандартные (без плагинов) проекты NeoBook не умеют обрабатывать никакие другие типы данных акромя текстовых. Потому и копировать из буфера непосредственно в проект можно только текстовую информацию. В самой NeoBook есть все необходимые для этого средства. Остальные типы данных, содержащихся в буфере (картинки, музыка, списки файлов, и т.д.), проекту NeoBook ПО-БАРАБАНУ, т.к. он АБСОЛЮТНО НИЧЕГО НЕ СМОЖЕТ С НИМИ СДЕЛАТЬ! Исключение составляют только плагины, но контроль содержимого буфера обмена на предмет поиска в буфере нужных данных это - головная боль разработчика соответствующего плагина! Существующая опция мониторинга буфера в плагине zmFunctions призвана только просигнализировать о том, что содержимое буфера изменилось, а уже ЧТО там в буфере находится это - головная боль (см.чуть выше)... Определить есть ли в буфере текстовые данные или нет можно очень легко средствами самой Neobook по содержимому глобальной переменной [Clipboard] ; она автоматически обновляется вместе с изменением содержимого буфера обмена, и если там не текст, то переменная будет просто пустой!
Исходя из всего изложенного, я просто не вижу никакого смысла что-либо дополнять в плагине по части буфера обмена. Существующей функции плагина в сочетании со штатными средствами NB вполне достаточно для того, чтобы отловить момент появления именно текстовых данных в буфере, и скопировать их куда требуется.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Peter, про сенд кейс не забыл? блин сенд кейс правильно написал?? Поехал на юух, в прямом смысле этого слова Приеду, узнаю ответ
Добавлено (12 Июль 2010, 18:31) --------------------------------------------- Во блин, перечитал, юух же правильно пишется юг Вот что значит привычка смотреть на вещи с извратом
Во блин, перечитал, юух же правильно пишется юг Вот что значит привычка смотреть на вещи с извратом
А ты попробуй ещё прочитать наоборот, т.е справа-на-лево?
Добавлено (12 Июль 2010, 18:50) ---------------------------------------------
Quote (mishem)
Поехал на юух, в прямом смысле этого слова Приеду, узнаю ответ
Набирайся сил для новых творений!
А у нас в Питере сейчас +32, а завтра обещают до +36... Какой тут нужен юх!...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
А ты попробуй ещё прочитать наоборот, т.е справа-на-лево?
Quote (Peter)
Вот что значит привычка смотреть на вещи с извратом
Добавлено (12 Июль 2010, 19:51) ---------------------------------------------
Quote (Peter)
Какой тут нужен юх!...
Ко мне сестра родная с Голандии приехала с дочками, через пару дней уезжат к дядьке(родному) на , в Ольгинку. А там собирается родня(жаль не вся ) Надо сына познакомить с родней, а то все не до суг. Правда из колеи выбивает, но надо. У меня родня по всей бывшей СССР, а сын ни кого не знает В Питере только, сестра двоюреднаяс дочкои и родной брат жены Ткни пальцем на карте, родня есть На украине, в беларусии, в голандии
копировать из буфера непосредственно в проект можно только текстовую информацию
Это понятно, и делается уже отлично благодаря команде мониторинга изменений в буфере - zmClipboardMonitor. Кстати, штатными средствами мониторить факт изменений в буфере обмена значительно менее удобно и, думаю, значительно менее эффективно.
У меня практическая задумка какая - чтобы после запуска нужного приложения в трее, можно было простым копированием в буфер собирать все скопированные (из какого-либо источника) данные в отдельном файле. Это удобно и полезно. Но если копируются не только текст, но и рисунки, и таблицы (с интернет-страницы, например), то вставляется, естественно, только текст.
Есть ли возможность создать команду плагина, которая бы позволяла всё разноформатное содержимое буфера обмена (например, выделена и скопирована глава какой-либо иллюстрированной электронной книги или разнородный кусок страницы сайта) представить как одну переменную, которая будет использоваться для работы с другими приложениями (отправить содержимое этой переменной туда, тем же "сендкейсом") или с файлами rtf (не с самим проектом NB и не в проекте NB), например - для вставки содержимого этой переменной в rtf-файл? Ну я и написал...
Я совершенно не представляю трудоемкости и масштабов этой задачи, только спрашиваю.
собирать все скопированные (из какого-либо источника) данные в отдельном файле.
Файл это не папка, в которую можно напихать "разнокалиберные" данные. Каждая программа формирует свой формат файла, в зависимости от её назначения. И точно также сама "определяет" (фильтрует) что ей копировать из буфера, а что - нет. Кроме того, помимо стандартных форматов буфера обмена, каждая программа в состоянии регистрировать свой собственный формат для работы через буфер. Единственное, что можно с большой долей достоверности предположить, так это то, что для копирования и вставки данных через буфер обмена, в большинстве программ применяются стандартные сочетания клавиш: Ctrl+C и Ctrl+V. Вот их и использовать! А для этого плагину совершенно не обязательно знать что там в буфере находится.
Quote (Вадим)
Но если копируются не только текст, но и рисунки, и таблицы (с интернет-страницы, например), то вставляется, естественно, только текст.
Картинки, например, скопировать-то можно... В отдельные самостоятельные файлы, а дальше?....
Т.е. плагин должен уметь из данных буфера формировать документы Word, Exel, Photoshop, HTML-страницы...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
плагин должен уметь из данных буфера формировать документы Word, Exel, Photoshop, HTML-страницы...
Не, было бы достаточно , если бы он позволял любое скопированное содержимое скормить файлу RTF.
Я думал, думал, и надумал вот что. Можно копировать что угодно в файл RTF, скрыто используя WordPad (он есть везде, где есть Windows и им практически никто не пользуется, а если даже человек и пользуется, то можно сделать проверку на его запуск и если он таки открыт, то попросить пользователя выбрать - с какой программой он будет работать - проект NB или WordPad, поскольку WordPad нужен для данного проекта NB). WordPad по умолчанию сохраняет файлы в RTF, а с этим форматом у NeoBook большая и чистая любовь. И пусть себе WordPad сам разбирается с тем, как ему переварить в RTF все те форматы буфера, которые пользователь ему предлагает сложить в один файл. А может быть можно и проще, через какую-нибудь специальную библиотеку складывать в RTF или компонент (если, конечно, таковой есть, но для RTF, по идее, таковой просто обязан быть...). Ежели доступные решения неудобны, то я предлагаю еще вариант приобретения компонента. Мне показалось, что вот этот компонент - TRichView (который, кстати, используется в программах The Bat, WinOrganizer, Skype, PDF Converter и мн.др.) может существенно расширить возможности NeoBook. На этой странице в самом низу разработчиками выложена для скачивания бесплатная (поскольку довольно старая) версия этого компонента, вместе с исходниками. Для постсоветского пространства платная версия продается с большой скидкой, если решишь, что этот компонент интересен (с сайта разработчика доступны тестовые версии, демо), то я с удовольствием приобрету TRichView для твоего плагина, пусть народ пользуется! Должны же мы тебе хоть как-то помогать в разработке? Как тебе эти идеи?
_______________________ Теперь по другому вопросу.
Команда zmFontBox в первый раз открывая в проекте NB диалог выбора параметров шрифта содержит параметры по умолчанию - шрифт черный, MS Sans Serif, 8пт, normal, кириллический.
Это как правило не удобно, потому, что если пользователь изменит только один параметр (какой желает изменить), то изменятся и все те, что не совпадают с установками того или иного объекта в проекте NB. К примеру, захотел он изменить жирность шрифта, а получит еще и сюрприз, в виде изменения и вида, и цвета, и размера...
Тем не менее, замечательно, что повторный вызов этой команды уже демонстрирует те настройки, которые были пользователем выбраны в прошлый раз.
Можно ли к команде zmFontBox добавить возможность выбора параметров по умолчанию? Например, чтобы можно было оформить такую подпрограмму (если до самой команды zmFontBox явно указать значения переменных, то в диалоге выбора шрифта эти параметры и отобразятся, а после закрытия диалога выбора параметров шрифта эти переменные обновляются и в SetObjectFont передаются уже в обновленном виде):
:FontBox SetVar "[zmFontColor]" "84,32,1" SetVar "[zmFontName]" "Arial" SetVar "[zmFontSize]" "10" SetVar "[zmFontStyle]" "Normal" SetVar "[zmFontCharset]" "RUSSIAN_CHARSET" .откроет диалог с указанными выше настройками zmFontBox "" .передаст в переменные те значения, которые были выбраны в диалоге SetObjectFont "[NameObject]" "[zmFontColor]" "[zmFontName]" "[zmFontSize]" "[zmFontStyle]" "[zmFontCharset]" Return
форматы буфера, которые пользователь ему предлагает сложить в один файл. А может быть можно и проще, через какую-нибудь специальную библиотеку складывать в RTF или компонент
Форматы буфера НЕЛЬЗЯ сложить в один файл!
Quote (Вадим)
TRichView (который, кстати, используется в программах The Bat, WinOrganizer, Skype, PDF Converter и мн.др.) может существенно расширить возможности NeoBook.
Создание чего-либо на основе этого (или другого подобного) компонента это - самостоятельный специализированный плагин! Собственно, оный уже давно существует.
Да и с буфером, насколько я понял, работать умеет. И, по-правде говоря, мне пока не очень понятно зачем делать "дубликат". И потом, компонент это - всего-лишь "заготовка", которую ещё обтачивать и обвязывать под NeoBook.
Quote (Вадим)
Это как правило не удобно, потому, что если пользователь изменит только один параметр (какой желает изменить), то изменятся и все те, что не совпадают с установками того или иного объекта в проекте NB. К примеру, захотел он изменить жирность шрифта, а получит еще и сюрприз, в виде изменения и вида, и цвета, и размера...
Ну, такие "сюрпризы" - это уже для совсем, пардон, тупых юзверей!
Вообще-то, диалог выбора шрифта предназначен для выбора шрифта СО ВСЕМИ, предлагаемыми в диалоговом окне атрибутами, а не для выбора какого-либо, отдельно взятого, атрибута. Тем-не-менее, последнее (если чуток подумать), тоже можно сделать - использовать только необходимую возвращенную переменную (атрибут), а остальные - проигнорировать.
Что касается, шрифта "по-умолчанию".... Диалоги выбора цвета и шрифта не дэлфийские компоненты, а написаны целиком на WinAPI, и по-началу в них не делал вообще никаких "умолчаний". Это уже я потом добавил "шрифт по умолчанию" при первом вызове (от балды) и запоминание последнего шрифта и цвета (в диалоге выбора цвета), чтобы не было уж совсем скучно.
В принципе, добавить можно... Но, зачем при вызове диалога указывать "умолчания", если все-равно - выбирать?
Указать, предварительно, атрибуты, а затем их же и выбрать?...
Неразбериха (у "продвинутых") может случиться ещё больше!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
А тот плаг вроде бы только с текстом работает... Отложим пока этот вопрос, до лучших времен, сейчас есть задачи и поважнее.
Quote (Peter)
Тем-не-менее, последнее (если чуток подумать), тоже можно сделать - использовать только необходимую возвращенную переменную (атрибут), а остальные - проигнорировать.
Ловко, но у юзверей будут трудности (см. ниже).
Quote (Peter)
зачем при вызове диалога указывать "умолчания", если все-равно - выбирать?
Смысл как раз в том, чтобы пользователь мог изменить только один нужный ему параметр или несколько, но чтобы ему не приходилось выставлять их все. Предложенный вариант с игнорированием тех переменных, которые не были изменены не подходит, вот почему:
Например, на экране есть текстовый объект и пользователь решает увеличить шрифт текста на два пункта, заходит в настройки шрифта и выбирает "10" (помним, что в диалоге по умолчанию выставлено "8", следовательно он решит, что отображаемый шрифт именно размера "8"), закрывает диалог, а размер надписи и не изменился вовсе (потому, что для данного объекта он мною и выставлен на 10 пт, именно так и есть в моей проге, которую сейчас делаю). А на данный момент, в существующей реализации, мало того, что шрифт не изменится в размере, так еще и вид, стиль, цвет, шрифта поменяется (если они отличаются от настроек по умолчанию в диалоге - например, у меня отличаются практически все)... Т.е. то, чего юзверь хотел - не случится, зато случится много чего такого чего он не собирался делать вовсе .
Вот поэтому и нужна возможность выбирать - с какими параметрами по умолчанию откроется диалог выбора параметров шрифта. Тогда для каждого объекта можно его открывать с нужными для этого объекта параметрами. Переменные плагина ([zmFontColor], [zmFontName], [zmFontSize], [zmFontStyle], [zmFontCharset]) работают на выходе из диалога, могут ли они работать и на вход?
Я не имел дел с этим плагином, но вот выдержка из описания к нему (выделено мною):
Quote
Features: Text formatting: Apply different fonts, styles and colors to the text. Paragraph formatting: Specify indentations, line spacing or alignment. Images: Bitmap image files can be inserted into the rich text document.
Quote (Вадим)
Отложим пока этот вопрос, до лучших времен, сейчас есть задачи и поважнее.
Quote (Вадим)
Вот поэтому и нужна возможность выбирать - с какими параметрами по умолчанию откроется диалог выбора параметров шрифта.
Ладно, уговорил!
Я подумаю как лучше сделать...
Хотя, все эти "сюрпризы" можно "предусмотреть" и средствами самой NB. Впрочем, от дурака защиты, как известно, нет!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Peter, спасибо за монитор мыши!!! Очень пригодилось! У объекта "Simple Text" нет ни правого клика, блин, ни левого, а с помощью плагина их можно теперь организовать!!!
Для новичков:см. в прикреплении мини-проект, демонстрирующий выделение объекта по левому или правому клику, вывод контекстного меню по правому клику.
И почему у всех объектов нет поддержки всех возможных событий?
У меня только одна трудность сейчас с монитором - организую вывод контекстного меню по координатам, схваченным плагом в переменные "[zmMouseX]" и "[zmMouseY]", но в результате контекстное меню появляется со смещением - правее и ниже, чем собственно находится мышка в момент вызова меню. При глобально и локальном мониторе - одинаково.
Важное наблюдение: чем дальше от левого верхнего угла монитора расположено окно приложения, на котором вызывается меню, тем больше это "смещение" (от реального к действительному ...). Если приложение находится в самом левом верху экрана, то контекстное меню промахивается слева примерно на 5-10 пикселей, а сверху ~50 пикселей, а если сместить окно приложения значительно правее и ниже, то контекстное меню появляется и вовсе ниже самого приложения (кстати, интересный эффект). От координат самого объекта, с которого вызывается меню данное смещение не зависит. Я проверил это тем, что таскал (Drag Drop) объект "Simple Text" по всему приложению и вызывал меню с него - смещение оставалось постоянным, но стоит передвинуть само окно приложения и размер смещения координат вызова меню тут же меняется - при сдвиге окна вправо-вниз примерно в 1,5-2 раза увеличивается "смещение".
Причем, сами координаты в переменных "[zmMouseX]" и "[zmMouseY]" определяются верно (проверял смещая окно приложения в крайний левый угол - нули показывает верно).
Я было связал эту ошибку вывода контекстного меню с тем, что у меня к нотику подключен второй монитор (работаю сразу на двух), но и с его отключением и даже после перезагрузки, все ровно тоже самое. Поэтому сейчас не знаю, на что грешить, но другой версии у меня нет. Эту версию несколько ослабляет и то, что у меня между мониторами общая граница - правая, а значит, что, по идее, смещение меню тогда должно быть больше вправо, а оно больше смещается вниз... В общем, что-то я тут не могу разобраться...
В прикреплении PUB, на котором всё это можно увидеть (требуется, ессно, плаг Петра): _________ Добавлено Теперь PUB без косяка с выводом контекстного меню.
Добавлено (20 Июль 2010, 16:40) ---------------------------------------------
Quote (Вадим)
Причем, сами координаты в переменных "[zmMouseX]" и "[zmMouseY]" определяются верно (проверял смещая окно приложения в крайний левый угол - нули показывает верно).
ну значит координаты монитора, а не проекта
У меня тоже были непонятки, короче, что там там с координатами, надо расчитать, чуть позже постараюсь найти тот проект
Сообщение отредактировано Сергей - Вт, 20 Июля 2010, 16:51
У меня только одна трудность сейчас с монитором - организую вывод контекстного меню по координатам, схваченным плагом в переменные "[zmMouseX]" и "[zmMouseY]",
Quote (Вадим)
В общем, что-то я тут не могу разобраться...
Вадим, всё очень просто: плагин выдает ЭКРАННЫЕ координаты, а команды вызова контекстного меню (Menu и MenuEx) используют координаты ОТНОСИТЕЛЬНО ЛЕВОГО ВЕРХНЕГО УГЛА ПРОЕКТА. Следует вообще иметь ввиду, что большинство (НЕ ВСЕ) координат в NB отсчитывается именно так! Поэтому для вызова контекстного меню проще применить такой код:
Можно также сместить, если потребуется, меню на необходимую позицию относительно курсора, вставив соответствующие "поправки" в координаты. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Он наверное хочет через твой плаг, через [zmMouseX]
А смысл? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
плагин с применением DataGirg(с возможностью вставки чебокса)
Что такое "DataGirg"?
Ты имеешь ввиду вставку чекбокса в таблицу?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
команды вызова контекстного меню (Menu и MenuEx) используют координаты ОТНОСИТЕЛЬНО ЛЕВОГО ВЕРХНЕГО УГЛА ПРОЕКТА
Получается эти команды воспринимают экранные координаты как координаты от левого верхнего угла проекта? Вот от куда берется эта прогрессия...
Quote (Peter)
GetMousePos "[MouseX]" "[MouseY]"
Вот я тупанул, пропустил как-то эту команду!
Исправлю сейчас мини-проект в прошлом посте, применив эту команду. Пусть пользуются примером, кому надо.
Quote (Сергей)
он то подумал что баг, хотя может я ошибаюсь...
Не, я уже привык искать ошибки, прежде всего, в своих действиях. Вот и на этот раз так и получилось. Ведь в справке к командам Menu и MenuEx черным по белому написано: "Координаты меню относительно левого верхнего угла приложения", а я, выходит, решил, что раз плагин берет экранные координаты, то и команды меню должны их принимать за экранные, а с какой стати, если в переменных значения, а не методы... Так что это просто моя невнимательность.
Quote (Сергей)
плагин с применением DataGirg(с возможностью вставки чебокса) хлопотно сделать?
Прикольно! И для всяких плееров, прайсов, тестов, анкет, чек-листов..., может пригодиться такая фича. Неужели нет еще нормального плага на эту тему? Да и таблицы баз данных же должны как-то штатно отображаться...
Попробовал поместить чекбоксы поверх объекта "Text Editor", в принципе вполне можно работать, но несколько неудобно конечно, и при разных системных шрифтах таблица и чекбоксы могут поползти относительно друг-друга...
Так эта "штука" уже (судя по картинке) присутствует. Зачем тогда плагин?
Quote (Вадим)
Попробовал поместить чекбоксы поверх объекта "Text Editor", в принципе вполне можно работать,
Тоже - вариант.
Quote (Сергей)
и код пухнет не подетцки
Ага! Можно подумать, что в Delphi нужно всего две-три строчки для реализации этой затеи.
Такого готового компонента нет, и если его делать и реализовывать в плагине (что теоретически возможно), код HTML покажется более чем детским лепетом!
На все нужно время, а его сейчас катастрофически не хватает... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться