Тут на форуме не раз возникали замечания на тему, что в NeoBook не хватает тех или иных мелких, но иногда полезных функций. Мне думается, что следует попытаться исправить эту ситуацию с помощью плагина, т.к. VB или Java знают далеко не все необукеры, к тому же, на мой взгляд, плагин намного более эффективное средство нежели чем, например, тот же VBS. С учетом последнего вопроса об анимации внешних необушных окон, решил реанимировать свой самый первый плагин, который давно-давно делал. Пока это только пробная (на тестирование) версия. Но если все будет в порядке, то плагин можно будет выложить официально. А пока в архиве (см.прикрепление) находятся две версии плагина (Design и Runtime), зародыш справки, и демка. Вот список функций:
Панель задач zmHideIcon - Скрыть значок приложения на "Панели задач"; zmShowIcon - Показать значок приложения на "Панели задач"; zmHideTaskBar - Скрыть "Панель задач"; zmShowTaskBar - Показать "Панель задач";
Компьютер zmLogOff - Завершение сессии текущего пользователя; zmRebootComputer - Перезагрузить компьютер; zmShutDownComputer - Выключить компьютер. Завершение работы компьютера с выключением питания, если система поддерживает автоуправление питанием;
Диалоги zmColorPicker - Отобразить диалог выбора цвета. Значение выбранного цвета возвращается в формате RGB. Переменные: [zmRed], [zmGreen], [zmBlue]; zmFontPicker - Отобразить диалог выбора шрифта. Атрибуты выбранного шрифта возвращаются в виде переменных: [zmFontColor] - цвет, [zmFontName] - имя, [zmFontSize] - размер, zm[FontStyle] - стиль, [zmFontCharset] - кодировка;
Окна zmFindWindow - Найти окно по заголовку и имени класса. Возвращается: дескриптор (HWND) окна, или "0", если окно не найдено; zmGetWindowHandle - Получить дескриптор (HWND) окна по заголовку; zmGetWindowTitle - Получить имя класса и/или текст заголовка окна; zmSetWindowTitle - Установить новый текст заголовка окна; zmShowWindow - Скрыть/Показать/Свернуть/Развернуть/Закрыть окно; zmSetWindowPos - Установить положение окна; zmSetWindowTransparent - Установить уровень прозрачности окна (Windows 2000 и выше); zmCancelWindowTransparency - Отменить свойство прозрачности окна и сделать его непрозрачным (W2k и выше); zmIsWindow - Определить состояние окна (видимость, свернуто, развернуто, и т.п.); zmEnableWindow - Сделать активным неактивное окно. Активное окно реагирует на события мыши и клавиатуры; zmDisableWindow - Сделать неактивным окно. Неактивное окно не реагирует на события мыши и клавиатуры); zmGetWindowRectangle - Получить положение и размер окна;
Окна NeoBook zmSetCustomWindowPos - Установить положение и размеры внешнего окна (CustomWindow) NeoBook; zmShowCustomWindow - Скрыть/Показать/Свернуть/Развернуть/Закрыть внешнее окно NeoBook; zmIsCustomWindow - Определить состояние внешнего окна NeoBook (видимость, свернуто, развернуто, и т.п.); zmEnableCustomWindow - Сделать активным неактивное внешнее окно NeoBook. Активное окно реагирует на события мыши и клавиатуры; zmDisableCustomWindow - Сделать неактивным внешнее окно NeoBook. Неактивное окно не реагирует на события мыши и клавиатуры; zmSetCustomWindowTransparent - Установить уровень прозрачности внешнего окна NeoBook (W2k и выше); zmCancelCustomWindowTransparency - Отменить свойство прозрачности внешнего окна NeoBook и сделать его непрозрачным (W2k и выше); zmAnimateCustomWindow - Скрыть/Показать с анимационным эффектом внешнее окно (CustomWindow) NeoBook;
Файлы и папки zmFolderSize - Определить размер в байтах указанного каталога (папки);
Настройки плагина zmShowErrors - Показывать сообщения об ошибках;
Пока совсем немного функций, но со временем, по мере надобности, будем его дополнять. Кстати, у "анимации окон" есть некоторые ограничения...
Мне думается, что ближайшей задачей будут некоторые "файловые" функции, отсутствующие в штатном необушном арсенале.
Да, сорри, кажется функция плагина "об ошибках" пока работает вхолостую, т.к. не задействована реально.
Убедительная просьба потестить сие творение на предмет поиска ошибок, и высказать замечания/пожелания.
Добавлено (10 Январь 2010, 10:35) --------------------------------------------- Порадовали много функций
Quote (Peter)
Мне думается, что ближайшей задачей будут некоторые "файловые" функции, высказать замечания/пожелания.
в раздел "Файлы и папки" мона добавить функцию удаления папки(в месте с содержимым) и если не проблемно-поиск в папке нужного файла(имя, маска?!)
Добавлено (10 Январь 2010, 11:12) --------------------------------------------- Нет слов, первый тест и все положительные результаты. Мне как раз нужна была функция размера папки, а метод ВБС частенько входит в ступор Спасибо, отличное начало!
Сообщение отредактировал sp3d - Воскресенье, 10 Январь 2010, 11:09
Ну вот, уже что то! Особенно про окна. Добавь еще поиск чилдренов и замену парентов, можно будет и пофулиганить По крайней мере фича будет весьма интересная.
имплантировать в чужую прогу и пищать ею до опупения, из чужого окна
Замечательная идея !!! А вообще, действительно, иметь возможность разместить вызов своей проги в другой проге - интересная возможность!
Первые наблюдения по плагину. Прикольно исчезает, "медленно растворяясь" окошко "О плагине" (Опции => Установка плагина). Я сначала подумал, что это мой комп подвис :))).
Проверял работу по прилагаемому к плагину тестовому файлу в системе WinXP SP3.
В режиме тестовой компиляции Кнопка "А что у нас с заставкой экрана?" выводит окошко "Влючена!!!" (не хватает буквы "к"), хотя заставка у меня отключена. Кнопка "Включить заставку" не включила заставку. Проверял в "свойствах экрана" - заставка по прежнему "нет". Аналогично не сработали кнопки "Включить заставку" и "Запустить заставку". Остальное на первой странице тестового приложения работает. На следующей странице (работы с окнами) выдает ошибку, но возможно потому, что я не выставил класс окна, я не знаю что это такое. Предположил, что возможно дело в тестовой компиляции, поэтому скомпилировал тестовый файл.
После компиляции Перестали работать все функции, в том числе, теперь, и в режиме тестовой компиляции. Выдает одинаковую ошибку, только имена команд разные. Пример ошибки:
Оп! Кажется разобрался почему. После компиляции тестового приложения из NB почему-то исчез плагин zmFunctions. Вероятно это связано с тем, что скомпилировав тестовое приложение я проверил функцию "перезагрузка" и NB был принудительно закрыт плагином, как и другие программы. По всей видимости при таком закрытии установка плагина просто не сохранилась. А может это мой файрволл в первый раз шутканул... Потому, как сообщал мне о попытке запуска изменившегося исполняемого файла (при запуске тестовой компиляции). Установил плагин заново. Теперь кнопка "А что у нас с заставкой?" выдает верный ответ, но включить или запустить заставку плагином по-прежнему не удается. Возможно виной тому отключенные мною какие-то службы, не знаю, предполагаю только. Кстати, есть ли для работы плагина список необходимых служб?
Работа с окнами понравилась, особенно прозрачность и анимация окон! Класс!!! Окна плагин находит, блокирует и освобождает, заголовок окна определяет и меняет, размер папки определяет верно и т.д. Вроде бы как и все остальное работает.
Заново скомпилировал тестовое приложение. Теперь оно работает! Не понимаю, в чем была проблема... Видимо именно в том, что слетел плагин в первый раз. Попробовал перезагрузить NB, с плагином теперь все в порядке, не исчезает.
Плагин опять определил наличие заставки, что неверно, на самом деле заставки нет. После перезапуска NB плагин определяет отсутствие заставки верно и в тестовом, и в скомпилированном режимах. Не знаю, с чем могла быть связана ошибка в первом случае.
При нажатии "сброс прозрачности" слайдер не возвращается в соответствующее положение. Хотя, скорее всего, это и не предусматривалось...
Есть ли смысл в эту библиотеку функций добавить те, что реализованы как zmKeyBoard и zmNet или там есть своя специфика?
я проверил функцию "перезагрузка" и NB был принудительно закрыт плагином, как и другие программы. По всей видимости при таком закрытии установка плагина просто не сохранилась.
Семён Семеныч, ЕСТЕСССССТВЕННО! Настройки-то не сохранилсь, и Neobook забыла, что у неё появился "бесценейший довесок". Перед перезагрузкой компутера, вообще-то принято "сохраняться", и демка об этом, между прочим, ПРЕДУПРЕДИЛА, и предоставила альтернативу. Я вот думаю, а что если сделать в плагине коианды (пустышки естесственно)типа "Format C:\" или "Спалить материнскую плату", и дать на тестирование, найдуться рискОвые? А потом будут ещё возмущаться мол "плагин кривой, не работает!" По заставке экрана... Там все работает так, как и должно работать: если заставка экрана отключена в настройках пользователя, то и запускать просто нечего. А включить заставку может только сам пользователь в "Свойствах экрана". Иными словами, плагин будет работать с заставкой только если она в принципе включена пользователем, о чем имеется запись в соответствующей ветке Реестра, и если там "0", то плагин, хоть умри, заставку не включит/выключит, и не запустит! Нет, технически это сделать, можно, но не дело влезать в пользовательские настройки. Я, например, проги, которые пытаюся хозяйничать в моих "предпочтениях" удаляю моментально и больше никогда не устанавливаю! А вот проверку включен ли скринсейвер, пожалуй можно и модернизировать будет с учетом записи в Реестре, сейчас плагии определяет это по одному критерию, а надо бы по двум.
ОК! Я подумаю, что тут можно придумать. Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
В апи функции sendmessage postmessage, сенд выполняется сразу и требует возврата результата, тюфу на нее, пост помещает сообщение в очередь сообщений и ответа не требует. Смотри сообщения WM_ (и другие), фигня функция, а сколько может полезностей делать, Аснова винды
Peter, Окна Neo Book. При выборе в стандартной команде Neo Book CustomWindow стиль окна FixedPos, окно при команде zmAnimateCustomWindow, открывается ТОЛЬКО в пределах окна проекта При выборе любого другого стиля, все прикрасно открываются за пределами окна. Жаль, то что именно нужно, не получается.
Добавлено (16 Январь 2010, 20:20) --------------------------------------------- Еще, когда в поле "Сохранить результат в переменной" пишешь переменную без [] скобок, скобки автоматически не добавлябтся. Конечно это не столь важно, но по привычке можно не обратить на это внимание
А пока чуть обновленная и подправленная версия плагина.
Прикольно! Плагин крепчает на глазах!!! Спасибо!
Quote (Peter)
Полностью переделаны команды диалогов выбора цвета и шрифта. Теперь окошки отображаются по центру экрана, а не "привязываются" к окну проекта.
Может глупость скажу (воспринимайте как рабочую гипотезу :)...), я подумал, а что если обе функции оставить в плагине, т.е. сделать управляемый параметр - отображение диалога выбора цвета и шрифтов а) с привязкой к главному окну программы и б) по центру экрана? Ведь все больше становится больших мониторов и если человек работает на таком, и разместил несколько программ по всему экрану, то диалог выскакивающий строго по центру может выглядеть не красиво и не функционально.
Quote (Peter)
сейчас интересует работоспособность "прилипания" в принципе
то диалог выскакивающий строго по центру может выглядеть не красиво и не функционально.
Вообще-то, "по-центру экрана" принято "как в лучших домах ЛондОна и Парижу", а если серьезнне, то это - стандарный вариант отображения этих окон, применяющийся во всех (по крайней мере, известных мне) программах. Между прочим, эти стандартные делфийские диалоги тоже выскакивают "по-центру"...
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
Ну, это довольно старые "дома"... "Липкость" работает!!! Браво!!! По-моему, эту функцию уже давно ждали! Только не пойму, так и должно пока быть, чтобы липкость внешнего окошка (а точнее его левого верхнего угла) всегда была строго привязана к левому краю (и даже определенному расстоянию от него) главного окна? Меняю координаты и размер внешнего окна, оно смещается, но при передвижении внешнего окна прыгает строго на "свое место" слева от гл.окна, правда установленные размеры сохраняет. Но установленное относительно гл.окна положение не держит.
С уважением, Вадим
Сообщение отредактировал Вадим - Вторник, 19 Январь 2010, 03:37
Это задается в той подпрограмме, которая назначается командой zmOnMoveSize, а там все просто - zmSetCustomWindowPos.
Добавлено (19 Январь 2010, 04:06) --------------------------------------------- Но надо будет добавить ещё одну команду для более удобного и точного вычисления позиции необушного внешнего окна, т.к. у окна есть общие размеры, а есть и размеры клиентской части. В принципе, эта команда (zmGetWindowRectangle) имеется для "вообще" окон, а специально для необушных нет.
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
Ну, так вроде бы в NB все равно нельзя манипулировать размером меню (кроме как прибегая к стилю винды или отрекаясь от оного). Кстати, иметь возможность делать свои размер, заливку, шрифт и фон для основного меню - было бы прикольно! Хотя бы заливку цвета свою, и то уже было бы интереснее!
С уважением, Вадим
в NB все равно нельзя манипулировать размером меню
Раговор не о манипулировании размером меню, а о вычислении позиции окон, т.к. на разных компьютерах, в зависимости от стиля оформления, могут быть разные толщина рамки, высота заголовка. А зная разницу в рамерах окна и его клиентской части можно вычислить толщину рамки, высоту заголовка, и в соответствии с этим рассчитывать нужную позицию окна, если потребуется, например, "прыгать" от размеров клиентской части. Кстати, сама NeoBook считает координаты от верхнего левого угла именно клиентской части главного окна без учета заголовка.
Quote (Вадим)
иметь возможность делать свои размер, заливку, шрифт и фон для основного меню - было бы прикольно! Хотя бы заливку цвета свою, и то уже было бы интереснее!
Ну вот, пошло-поехало!... Нет, прав Алекс! Тыщу раз прав!... Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
с координатами 298 и -3, так вот, пока основное окно не двинешь в какую нибудь сторону, Container2 будет открываться по координатам -1 и 4. Если окно подвинуть в сторону не дав еще ни какой команды, а потом запустить скрипт
опять Container2 будет открываться по координатам -1 и 4. и только после того как окно опять подвинешь в какую либо сторону, начнет открываться именно там где надо. Тоесть в том месте окна где нужно было с самого начала.
Я люблю думать что умею рисовать
Сообщение отредактировал mishem - Вторник, 19 Январь 2010, 16:27
просто детектить нажатие пкм и предоставить самому решать что делать
Именно это я и планирую делать. Будет один хук на все окно приложения, а детектировать на каком объекте при этом находится мышь прекрасно можно и средствами самой NeoBook. Но я ещё и не начинал пока, только домой ввалился...
Quote (Вадим)
Присоединяюсь к просьбе!
Quote (mishem)
пока основное окно не двинешь в какую нибудь сторону, Container2 будет открываться по координатам -1 и 4.
Совершенно справедливо - так оно и должно быть, ведь команда двигающая окно не запущена. Нужно дать пояснение: В Windows все происходит событийно! Команда плагина zmOnMoveSize не начинает движение никаких окон, а только назначает реакцию на событие перемещения и/или изменения размера главного окна приложения. Вот рисунок:
Стрелкой указаны закладки, в которых мы прописываем скрипты, выполняющиеся при наступлении событий, указанных на этих закладках. Представьте, что команда zmOnMoveSize просто как бы добавляет ещё одну закладку в эти дела, но с той разницей, что события этой "виртуальной закладки" можно в любой момент включать/отключать и переопределять в зависимости от ситуации. Ещё раз... zmOnMoveSize всего-лишь назначает подпрограмму, которая начнет выполняться только с началом (событием) перетаскивания главного окна и/или изменении его размеров!
Quote (mishem)
опять Container2 будет открываться по координатам -1 и 4.
Контейнер и открывается там, куда ты его сам поставил. И ещё одна тонкость: команды, идущие по скрипту за zmAnimateCustomWindow, начнут выполняться после того как анимация "отработает".
Добавлено (19 Январь 2010, 21:37) --------------------------------------------- Пожалуй, надо будет переименовать с zmOnMoveSize на zmSetOnMoveSize.
У всех "нужных" объектов NeoBook есть события MouseEnter и MouseExit (вот жаль только, что не у всех есть "правая кнопка мыши"). Есть такая переменная [Self] Подробнее см. файл справки. Детектить так: Берем ListBox (у которого нет реакции на правую кнопку), и в его события MouseEnter и MouseExit соотвественно прописываем команды SetVar "[Object]" "[Self]" и SetVar "[Object]" "". В результате при наведении мыши на ListBox в переменной [Object] оказывается имя объекта, а при уходе мышки переменная пустеет. А дальше в зависимости от имени объекта делаем что нужно. Можно и не имя объекта, а цифру какую-нибудь. Что больше понравится. А можно и координаты считать, но это более хлопотно, хотя и не отменяется...
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
клево! маска работает, и анимация! только я маленько не вкурил - маска применяется к окну только когда оно уже создано? но тогда заметен момент применения маски, как тут разрулить? может создавать окно скрытым, применять маску и показывать? Или создавать где-то в невидимой области? Да и анимация применяется к окну тоже только после создания. По-видимому, нада момент создания окна еще проконтролировать, чтобы он был незаметен.
DEMBEL, совсем забыл, блин... У необушных внешних окон можно проконтролировать момент их создания. По умолчанию у каждого такого окна есть два события OnOpen и OnClose. Заголовок такой: Object_OnPOpen и Object_OnClose, где Object - имя объекта, на основе которого создается окно, например, Container1_OnOpen. На событие OnOpen и можно повесить команду наложения маски, или все нужные события. Тогда окно можно создавать где угодно.
Добавлено (23 Январь 2010, 14:35) --------------------------------------------- Эти команды-события (OnOpen и OnClose) оформляются в виде подпрограмм, и прописываются в секции подпрограмм.
Я понял твою задумку. Подправленный прект см.в прикреплении.
Следует помнить: подпрограмма (событие) On_Open для создаваемого окна выполняется (наступает) ДО момента отображения окна, т.е. как бы ДО срабатывания команды CustomWindow. Поэтому, если мы на это событие навесим скрыть окно (а дескриптор уже имеется), оно скроется, но снова отобразится при команде CustomWindow. Поэтому скрывать окно надо уже ПОСЛЕ CustomWindow, а окно создавать ЗА пределами экрана.
Также OnClose выполняется ДО мемента закрытия (разрушения) окна,т.е. пока не выпониться то, что прописано в OnClose, окно НЕ закроется.
Кстати, скрытие объекты автоматически показываются, если они сипользуются для CustomWindow, т.е скрытиый контейнер специально показывать не надо, если на его основе создается внешнее окно.
DEMBEL, ваша с mishem, ошибка в том, что вы создаете ещё раз УЖЕ СОЗДАННОЕ окно, отсюда и появляется моргание, так и должно быть в этом случае. См.твой переделанный пример уже без всякого моргания, команду наложения маски я перенёс, но это в данном случае не принципиально, можно её и оставить на старом месте.
Окно, если оно уже создано не надо каждый раз создавать заново! Как это проверить см. опять же в прикреплении.
Я просто твой пример не довел до ума.... См. переделанный пример Дембеля! Да и примером чуть раньше, я ТО ЖЕ САМОЕ показал. НЕТУ У ВАС БОЛЬШЕ МОРГАНИЯ!!!
Интересно, что корнем слово "моргание" является, гм...
вы думали это все? ага, щаз... предлагаю провентилировать вопрос
Quote (DEMBEL)
но чтоб за курсором таскалось?
DEMBEL, ты меня убиваешь! Даже в ММВ это давно делают! Я только со дня рождения вернулся, но вот тебе подсказка "за курсором" в прикреплении! 5 минут работы... И без всяких плагинов.
Расслабились, что ли, все? Надо бы порядок "в танковых частях" навести!
Обновленная версия плагина (с парой "заказов") в прикреплении. Новое и исправленное:
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
Сохранять в файл в формата ВМР изображения (НЕ ФАЙЛЫ ИЗОБРАЖЕНИЙ) из буфера плагин можно научить без проблем уже сейчас, т.к. работать с форматом ВМР он может. Это пришлось в плагин ввести из-за маски, кстати, потому и маска формата ВМР должна быть. Поддержка же формата JPG (про остальные пока вообще непонятно) потребует непроизводительного "раздувания" плагина. И хотя я вовсе не впадаю в "маразм маленького файла", делать единичные функции работы с картинками именно в этом плагине неразумно, т.к. задумывался он для всякой разной "мелочевки". Тут нужен уже "специализированный" полноценный плагин. У меня тоже возникала потребность в работе с картинками в буфере, но все откладывал в долгий ящик, да откладывал... Может сейчас появится повод...
В принципе, может работать с буфером и плагин hpwImage, но правда, эта работа у него как-то очень странно организована. Во всяком случае, мне моих мозгов не хватило, чтобы понять логику автора плагина. А может я просто тупой.
Короче, если копирования ИЗОБРАЖЕНИЙ из буфера в файл формата ВМР устроит, то в этом плагине сделать можно. Иначе - другой плагин делать.
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
Короче, если копирования ИЗОБРАЖЕНИЙ из буфера в файл формата ВМР устроит, то в этом плагине сделать можно. Иначе - другой плагин делать.
Нет, тогда лучше сделать другой специализированный плагин для буфера обмена, чтобы он все умел, и мониторить и картинки и прочее... А в этом плагине имеющейся функции монитора для буфера достаточно. А может быть, и ее вообще убрать в этот другой плагин.
Несомненно! DEMBEL, только спойлеры уже не спасают от разных деятелей, которые все-равно дают "ценнейшие" указания типа "хватит уже флудить" даже админам! Такие нынче веяния в моде... Бойся! А пока...
Подправленная и чуть условно-обновленная версия плагина: исправлен упомянутый баг, и добавлена (наспех пока) команда типа "Открыть файл в программе по умолчанию" специально для нужд Вадима Лёвкина! Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
Все верно, т.к. к компиляции идет RunTime плагин, который я с дуру забросил ещё в самый первый вариант плагина. Но в нем нет массы функций, которые появились позжее. Удали его просто на фиг и все, и к компиляции автоматом пойдет Designtime вариант.
Но только в нынешнем виде плагин не сгодится для "конечного продукта" - когда запустишь скомпилированный экзешник, увидишь.
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008