пятница, 13 ноября 2009 г.

Красивый выпадающий список

Про список строк я уже рассказывал, но там рассматривал лишь его точки и параметры. Здесь я расскажу про создание красивого, с градиентом и иконками, выпадающего списка строк, а заодно покажу использование менеджеров - относительно новой технологии в HiAsm.

Для работы нам понадобится сам выпадающий список - ComboBox. Установим у него параметры ReadOnly=True и сотрём поле Text. Теперь туда можно добавить строки. А дальше нам понадобится целых три менеджера (вкладка "Интерфейс", группа "Менеджеры"): менеджер отрисовки, менеджер индексов и менеджер иконок.

Скачать схему HiAsm

Запустите программу и посмотрите, как красив стал список. А теперь стоит взглянуть на менеджеры.
Менеджер иконок содержит иконки. Имя у него (параметр Name) - "Иконки". И посмотрите в самом низу параметр выпадающего списка IconsManager - там выбрано это имя. Поэтому список связан с этим менеджером иконок. В менеджере иконок вы легко увидите все использовавшиеся иконки.

Менеджер индексов определяет, какой строке списка какая иконка будет соответствовать. У него тоже есть имя, и оно выбрано в параметре списка IndexManager. Каждый новый элемент в этом менеджере соответствует строке выпадающего списка, а значение - номеру иконки из менеджера иконок. Это может показаться сложным, но на самом деле это удобно, так как для одной программы можно использовать всего один менеджер иконок, а подстановкой иконок из него в разные списки будет управлять менеджер индексов, свой для каждого списка.

И наконец, менеджер отрисовки управляет отрисовкой иконок и других красивостей компонента. Советую поэкспериментировать с его параметрами, чтобы настроить список так, как вам хочется.

А сейчас мы добавим к нашему списку ещё несколько интересных вещей.

Скачать схему HiAsm

Здесь используется компонент UseExtCursor, который может задавать курсор для визуального компонента из файла. Если у вас курсоры находятся в папке C:\WINDOWS\Cursors, то вы увидите над списком в программе анимационный курсор.
Обратите внимание на имя (Name) списка - оно задано, а в параметре ControlManager у компонента UseExtCursor выбрано это имя. Поэтому курсор устанавливается именно для этого компонента. И практически для любого визуального компонента можно установить свой курсор.

Продолжим знакомство с менеджерами.

Скачать схему HiAsm

Здесь новый компонент - WorkIconsManager. Он управляет менеджером иконок (управление не встроено в сам менеджер для более гибкой работы). В данном примере используется функция замены иконки в менеджере на другую. Как всегда, начинает с событий. Начальные события - это нажатие на одной из картинок. Элемент DoData передаёт картинку с точки свойств в поток. Затем первое событие разветвителя вызывает метод компонента Icon для преобразования картинки bmp в иконку. Готовая иконка появляется на точке свойств этого компонента.
Второе событие разветвителя задействует компонент для добавления данных в многомерный поток (внимательно читайте описание используемого метода компонента WorkIconsManager). Первый аргумент в многомерном потоке - это число 3, потому что заменять мы будем иконку под индексом 3 (индекс начинается с 0). Второй аргумент - сама иконка (она из той картинки, по которой нажали). И абрикос становится откушенным!

Если выбран этот самый абрикос в списке, то его иконка отображается без раскрытия списка. Но когда при этом мы щёлкаем по картинке, то до раскрытия списка она не меняется! Что делать? Нам нужно перерисовать список, и для этого тоже есть менеджер!

Скачать схему HiAsm

У него только один параметр, где нужно выбрать имя визуального компонента, который нужно перерисовывать.

В HiAsm есть ещё некоторые менеджеры, но о них, пожалуй, в другой раз.




Хотите отправить красивую открытку подруге? Postcard flower - выберите цветок (ромашку, розу и т. д.), напишите текст и отправьте!

Тут вам сделают интернет-магазин, разработка сайта, изготовят корпоративный сайт или портал, а также сделают рекламу.

Вам нужна целевая аудитория? Тогда ваш выбор - контекстная реклама! Тут вам подберут ключевые слова, опредлят бюджет кампании, всё напишут и предоставят отчёт!

8 комментариев:

  1. Блин 3-й день в программе, не могу найти компонент...Что нужно поставить между списком и браузером, чтоб при нажатии в списке строки, в браузер шла команда перейти по такой то ссылке.
    P.S
    Мозги кипят от объёма инф-ии.

    ОтветитьУдалить
  2. Параметр DataType у списка нужно установить в String, а событие OnClick подключить к методу doNavigate браузера.

    ОтветитьУдалить
  3. В списке стоит "Сервер 1, Сервер 2 и.т.д" Нашёл компонент "Case ex", прописал в нём ссылку на строку 0, проверил на текстовом поле, выводит.Подключил к doNavigate, запустил (ушёл с главной стр.в глубь сайта)при нажатии первой строки из списка, выпадаю опять на главную. Менял ссылки, не помогает. Что не так, не пойму?

    ОтветитьУдалить
  4. Ай, разобрался...В уроках сказано: "что удаляем строку для главной страницы" , но не объясняют для чего...Надо в уроках по созданию браузера, написать что функция "doNavigate " не работает если не вычистить поле с ссылкой...
    P.S.
    Спасибо за ответ!

    ОтветитьУдалить
  5. "Из параметра URL желательно всё убрать, оставив его пустым, иначе вы не сможете загрузить страницу по адресу из потока, а только через точку данных.

    Здесь объясню, почему так происходит. Вы уже знаете, как можно передать информацию компоненту: через параметры, через точки данных и через методы (в потоке). Приоритет у них такой: сначала информация берётся из точки данных. Если на ней ничего нет, то проверяется соответствующий параметр. Если и он пуст, то только в этом случае данные берутся из потока. Всегда это помните."

    http://hi-asm.blogspot.com/2009/09/blog-post_15.html

    ОтветитьУдалить
  6. Спасибо, изучил внимательно инф-ю в посте. Сам пропустил...Опирался в основном на видеоурок.

    ОтветитьУдалить
  7. А можно ли в выпадающем списке, отображать кнопку-картинку?

    ОтветитьУдалить
  8. Вряд ли. Такое там не предусмотрено.

    ОтветитьУдалить