Вверх ↑
Этот топик читают: Гость
Ответов: 3889
Рейтинг: 362
#1: 2011-10-18 09:08:26 ЛС | профиль | цитата
== iQSearch версия 1.01 ==
== Модульное расширение интеллектуального поиска компонентов к среде HiAsm 4.04 для ОС Windows. ==
Скриншот [color=silver
(800x600)[/color]]
НАЗНАЧЕНИЕ: Максимально быстрый, наглядный и удобный поиск элементов, иконки которых лежат в папке icon текущего пакета, по фрагменту любого слова из имени или описания с последующим копированием в буфер обмена. По сути - миниатюрная поисковая система. Наследник к проектам предыдущих поколений (поиску по палитре - QuickSearch и по папкам conf - QSearch), но значительно удобнее и эффективнее. Оптимизация велась под запуск и печать в поле поиска одной рукой, вторая управляет курсором мыши, выбирает элементы. В отличие от двух предыдущих проектов, поиск ведётся по любой части слова, а не только по его первым символам, копирование в буфер обмена происходит только после непосредственного выбора элемента.

ФУНКЦИОНАЛ:+ Интеграция и стабильность:
   + Основной функционал и интерфейс реализованы в отдельном модуле, исключающем влияние на конструктор и упрощающем настройку и доработку под себя
   + Автоматический запуск одновременно с конструктором, с защитой от запуска нескольких копий
   + Автоматическое завершение при закрытии именно той копии конструктора, с которой стартовало расширение
   + Автоматическая переиндексация папки icon при смене текущего пакета
   + Вызов вне рабочего поля проектов SHA игнорируется
+ Эргономика:
   + Вызов по удобному для работы одной рукой сочетанию клавиш CTRL+Space
   + Фильтрация поля ввода от недопустимых символов
   + Автоматическое выделение всего текста в поле ввода для удобства полной замены
   + Дублирование клавиши Enter клавишей Space
   + Выход по клавише Escape или щелчку по свободному полю
   + Выбор элемента также автоматически прячет расширение
   + При сокрытии расширения фокус автоматически возвращается вызвавшей его среде
+ Поиск:
   + Плагин находит скрытые и нестандартные компоненты (при условии наличия у них иконки) не зависимо от их наличия в палитре
   + Поиск фрагмента длиной от 2-х символов не зависимо от регистра и расположения в тексте
   + Поиск в названии компонента
   + Поиск в комментарии к компоненту
+ Наглядность:
   + Затенение отвлекающих элементов открытого конструктора на время поиска элемента
   + Отображение элементов в виде иконок со всплывающими подсказками о имени и назначении
УСТАНОВКА:
   * Закрыть конструктор, удалить плагин предыдущего поколения: HiAsm/Int/plugs/qsearch.dll
   * [burl=/getfile/25496]Скачать архив iQSearch 1.01[/burl] (Зеркало)
   * Распаковать файлы iqsearch.dll и iqsearch_gui.exe в папку HiAsm/Int/plugs
   * Перезапустить конструктор

ТИПИЧНЫЙ СЦЕНАРИЙ ИСПОЛЬЗОВАНИЯ:
1. Зажимаем свободной рукой CTRL
2. Щёлкаем по пробелу, экран затеняется и появляется поле поиска с уже выделенным текстом (ничего не придётся стирать)
2.1 Отменить вызов поиска можно клавишей Escape или щелчком мыши по свободному полю
3. Той же рукой набираем не менее 2-х символов, которые должны встречаться в названии или в описании искомых элементов текущего пакета (цифры, русские, английские буквы, регистр не важен, случайно набрать иные символы поле не даст)
4. Опять нажимаем пробел (кому удобнее - Enter), текст в поле ввода выделяется (для лёгкой замены), на экране появляется иконки всех элементов, в которых встречается введённая подстрока
5. Мышью перебираем элементы читая названия и подсказки и совершаем щелчок на искомом
6. Экран поиска скрывается, активным становится окно конструктора, из которого запускалось расширение, в буфере обмена уже лежит выбранный нами компонент
7. Вставляем его куда-либо любым удобным способом

НЬЮАНСЫ:

- Может потребоваться перекомпиляция схемы под себя:
   ~ Используется сочетание клавиш, аналогичное плагину QSearch, для одновременной работы может потребоваться модификация схемы
   - На некоторых ОС может быть заблокирован или иначе настроен драйвер протокола UDP, что потребует изменений параметров UDP и перекомпиляции модуля(-лей)
   - Используемый расширением порт 10155 может использоваться установленными приложениями
   - На низко производительных ПК может потребоваться отключить затемнение экрана настроив элемент Check (DarkGlass) и перекомпилировав модуль интерфейса
~ В некоторых случаях расширение переиндексирует папки icon и conf
   ~ При смене пакета плагин может открыться с задержкой, необходимой для исследования всех компонентов и сбора информации о них
      + Благодаря чему плагин может обнаружить появившиеся в пакете компоненты без перезапуска среды
   ~ То же самое при первом запуске среды
------------ Дoбавленo в 16.21:
[offtop]Из-за ужасных глюков форума файлы скриншота и дистрибутива вынужденно залиты на сторонний хостинг, если меня не опередят, попробую перевыложить вечером. Если к тому моменту не выйдет очередная версия расширения [/offtop]
------------ Дoбавленo в 18.33:
Расширение доработано до универсальной совместимости с большинством реализаций UDP (проверено на HiAsm 4.04 под NT5.1 x86 и NT 6.1 x64), перекомпилировано и оставлено без сжатия чтобы не тревожить антивирусы. Ссылка в первом сообщении темы. Шапка будет пополняться информацией, следите за темой.
------------ Дoбавленo в 21.24:
Добавлено зеркало на форуме
------------ Дoбавленo в 09.08:
== Важное обновление. == В связи с тем, что плагин iqsearch.dll написан на ObjectPascal, запускает/закрывает дочерний модуль iqsearch_gui.exe и использует UDP-соединение, он ошибочно определяется некоторыми настроенными на параноидальный режим (Avira, Ikarus, Sophos, Emsisoft) эвристическими защитами как потенциально опасный. Можно убедиться в этом даже скомпилировав его самостоятельно из iqsearch.sha. Остальные антивирусы ничего не находят. Если Вас беспокоит паранойя, прилагаю [burl=http://forum.hiasm.com//getfile/25496] перекомпилированную незапакованную версию плагина и модуля интерфейса[/burl] (Зеркало): из iqsearch.dll вырезан модуль защиты от запуска нескольких копий GUI, в iqsearch_gui.exe добавлен аналогичный модуль. Исходные схемы в архиве.
карма: 1

3
файлы: 2iqsearch_101_nt61.zip [100.9KB] [383], iqsearch_101_secure.zip [100KB] [487]
Голосовали:login, wss60, CriDos
vip
#1.1контекстная реклама от партнеров
Ответов: 1429
Рейтинг: 50
#2: 2011-10-18 11:54:25 ЛС | профиль | цитата
1nd1g0, отлично! Щас реально удобно искать!
карма: 0

0
Ответов: 1841
Рейтинг: 369
#3: 2011-10-25 23:45:08 ЛС | профиль | цитата
думаю если прикрутить мои наработки то, можно ускорить подгрузку иконок с информацией элементов в разы, да и нагрузка намного меньше будет)
Собственно наработки: Скачать

p.s. завтра буду крутить
p.p.s. также попробую упростить...
карма: 1
0
файлы: 1testnarab.sha [6.8KB] [463]
Ответов: 3889
Рейтинг: 362
#4: 2011-10-26 08:26:03 ЛС | профиль | цитата
CriDos, рад любой помощи и слежу с интересом. У меня было несколько не публичных версий, были и с предварительным кэшированием, но самым быстрым был бы один большой битмап, не массивом, с копированием участков при отрисовке. Пробовал и заранее все панели создать, потом менеджер иконок. В обоих случаях жутко тормозило и занимало слишком много памяти, во втором выяснилось, что менеджер не справляется с таким количеством и дико клинит. Раз уж отрисовываете картинки вручную, лучше их располагать ровно по центру экрана, выравнивая в зависимости от количества элементов. Чтобы пользователю не приходилось ползти мышкой вверх. Также была идея пойти на встречу пользователям со слабым зрением и увеличивать иконкиподсказкипромежутки между ними пропорционально уменьшению количества на экране или при подводе курсора, если расширение приобретёт заслуженную популярность, можно заморочиться. С панелями это, конечно, несколько проще.
карма: 1

0
Ответов: 1841
Рейтинг: 369
#5: 2011-10-26 08:32:10 ЛС | профиль | цитата
1nd1g0 писал(а):
не массивом, с копированием участков при отрисовке

ну массив я прикрутил только для того чтобы потестить скорость отрисовки при изменении размера формы
карма: 1
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#6: 2011-10-26 08:54:25 ЛС | профиль | цитата
1nd1g0 писал(а):
менеджер не справляется с таким количеством и дико клинит

Подробнее можно -- какое количество и как клинит Дело в том, что менеджер иконок использует стандартный класс системы -- ImageList, расчитанный на работу с тысячами иконок в памяти. Менеджер проверялся в файловом браузере и никаких торможений замечено не было
карма: 22

0
Ответов: 3889
Рейтинг: 362
#7: 2011-10-26 09:04:53 ЛС | профиль | цитата
CriDos писал(а):
массив я прикрутил только для того чтобы потестить

Сейчас некогда, позже можно проверить, вдруг склеенная "ленточка" из иконок с выборкой по координате (индекс*ширина) особого прироста и не даст. Кстати, к вопросу о ширине ленточки, если иконки на 24 точки, и максимальная ширина типа integer, то получаем не более 1365 иконок. То есть расширение теряет универсальность и потенциальную поддержку 1366 и более элементов. Правда, сейчас их менее тысячи и планы на будущее туманны.
карма: 1

0
Ответов: 1841
Рейтинг: 369
#8: 2011-10-26 09:10:08 ЛС | профиль | цитата
[offtop]nesco, не подскажешь, возможно ли в MathParse округлить число в меньшую сторону?
А то мне приходится использовать элемент Convertor=StrToInt чтобы избавиться от всех цифр после точки [/offtop]
карма: 1
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#9: 2011-10-26 09:15:12 ЛС | профиль | цитата
CriDos писал(а):
округлить число в меньшую сторону?

В обновленном можно -- функция floor (округление в меньшую сторону)
------------ Дoбавленo в 09.15:
CriDos писал(а):
избавиться от всех цифр после точки

Для этого иcпользуется функция -- trunc (отбрасывание дробной части)
карма: 22

1
Голосовали:CriDos
Ответов: 3889
Рейтинг: 362
#10: 2011-10-26 10:00:10 ЛС | профиль | цитата
nesco, я перепроверил, возможно ты прав, проблема может быть в слоях и почти тысяче динамических панелей:

code_25567.txt
------------ Дoбавленo в 09.58:
Если попробовать иконки только на букву "a" (Try a*.ico), то Redraw сколько угодно раз, но достаточно "Try *.ico" чтобы (проверено на NT5.1 HiAsm 4.04 b292 (SVN)) весь интерфейс дико переклинило.
------------ Дoбавленo в 10.00:
А вот хрен там, если пощёлкать несколько раз на Try a*.ico , то клинит точно так же. А там - только работа с менеджером добавляется, по сравнению с Redraw
карма: 1

0
файлы: 1code_25567.txt [2.7KB] [454]
Разработчик
Ответов: 26061
Рейтинг: 2120
#11: 2011-10-26 10:07:57 ЛС | профиль | цитата
1nd1g0 писал(а):
и почти тысяче динамических панелей

Гы. А кого ты недавно учил не применять такое количество визуальных контролов
карма: 22

0
Ответов: 3889
Рейтинг: 362
#12: 2011-10-26 10:13:07 ЛС | профиль | цитата
nesco писал(а):
А кого ты недавно учил не применять такое количество визуальных контролов

А я на практике и не применяю, это тестовый пример, в котором мне удалось воспроизвести один из глюков (может быть не тот, что я тогда встретил, промежуточные версии утрачены, делал по памяти). В расширении намеренно невозможно ввести менее двух символов, что ограничивает число найденных результатов дай бог парой десятков. Тут дело не в большом количестве панелей, похоже. У тебя воспроизвёлся глюк с прорисовкой
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#13: 2011-10-26 10:22:20 ЛС | профиль | цитата
1nd1g0 писал(а):
А там - только работа с менеджером добавляется, по сравнению с Redraw

что-то мне подсказывает, что менеджер там совсем не виноват. Без вывода на панельки сам менеджер отрабатывает прекрасно
------------ Дoбавленo в 10.22:
1nd1g0 писал(а):
У тебя воспроизвёлся глюк с прорисовкой

Да, но менеджер там совсем не причем. Очень сильно похоже, что глючат слои. У меня были похожие вещи, но в другом месте
карма: 22

0
Ответов: 3889
Рейтинг: 362
#14: 2011-10-26 10:27:46 ЛС | профиль | цитата
nesco писал(а):
Очень сильно похоже, что глючат слои.

Я для перепроверки сделал кнопочку Redraw, чтобы погонять динамическое созданиеудаление панелей, чтобы запутать процедуры выравнивания, но не глючит, собака.
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#15: 2011-10-26 10:32:01 ЛС | профиль | цитата
Я отключил связь со слоем, и глючить стал через раз
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)