Иконки в Browse

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Гость

Сообщение Гость »

Здравствуйте!
Вот с такой очередной проблемой столкнулся:
Имеется таблица, одно из полей которой содержит путь к иконкам на винте.
Иметься ли возможность в стандартном бровзе (C55H, ABC) выводить эти иконки в каждой строке списка по этой таблице. И если можно, то, как всегда: что и где? И если можно, то поподробней.
Заранее благодарен за ответ.
PS Как вывести жестко указанную иконку в этом списке я знаю. А вот в динамике…..

Написал: NewUser(217)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

В BRW.SetQueueRecord устанавливай ?List{PROP:IconList,xxx} = 'IconFileName.ico' и назначай переменной в бровсе YYY:ZZZ_Icon = xxx
Где xxx номер порядковый... счетчик для номера сам заведешь!
Кстати иконок таким образом можно только 256 показать...
Если нужно больше то нужно делать динамическую подмену. Это уже сложнее.
Написал: Mixer(144)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Сообщение Дед Пахом »

а я умею иконки в статусбаре показывать. Но это уже совсем другая история
Написал: Дед Пахом(89)
Гость

Сообщение Гость »

Дед Пахом
а я умею иконки в статусбаре показывать.
А я умею окошки на таскбаре (рядом с треем или кнопкой Start, например) рисовать - а в них можно и иконки выводить - и что? ;)
Написал: Вадим Синявский(200)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Сообщение Дед Пахом »

А то! А то, что, когда листают броуз, в нижний правый угол на трей не смотрят, а на статусбар очень даже (не специально, просто он в поле зрения).
;^)
Написал: Дед Пахом(89)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

Хватит вам ... горячие эстонские парни!
Лучше пример в студию от обоих :-)
Написал: Mixer(144)
Гость

Сообщение Гость »

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

Mixer
Лучше пример в студию от обоих
Ушло мылом...
Написал: Вадим Синявский(200)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Сообщение Дед Пахом »

Лучше пример в студию
исходники затруднительно выслать, т.к. нужна установленная ECOM2INC. Вышлю exe, чтобы тоже не быть голословным.
Написал: Дед Пахом(89)
Гость

Сообщение Гость »

Если кому интересно, то могу выслать свой класс, заменяющий StatusBar Clarion на WINAPI. Можно делить на части, указывать стили, помещать иконки.
Написал: Сергей(218)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

2Сергей:
Мне на мыло пожалуйста, выложу на сайте ...
mixer@seal-soft.com
Написал: Mixer(144)
Гость

Сообщение Гость »

Ну вот и дождался я, когда умолкнут баталии титанов Кларионовской мысли. И после этих «боевых» действий мой вопрос кажется мне уж очень несерьезным. Но, тем не менее - вопрос так и остался не закрытым. Что-то у меня не получилось. Итак:
В таблице есть поле: *TAB:IconPath* в котором хранятся пути к иконкам.
Завел переменную: loc:Icon (Byte) и проинициализировал единицей.
В BRW.SetQueueRecord установил:
?List{PROP:IconList,loc:Icon} = TAB:IconPath
loc:Icon+=1
В List Box Format Appearance Iсon – Normal
Что-то я сделал не так?
Да, еще один вопрос в придачу, как увеличить межстрочное расстояние в списке (чтобы иконки помещались)?

Написал: NewUser(217)
Гость

Сообщение Гость »

Вообще-то значение этой переменной loc:Icon нужно присвоить полю очереди браузра, которое соответсвует иконке (которое имеет вид <префикс контрола>:<имя поля>:Icon). т.е. по сути используя PROP:IconList ты описываешь массив иконок, которые будут использованы при показе в ListBox-е, а в поле иконки очереди ты указываешь индекс нужной иконки в подготовленном массиве.

Да, еще один вопрос в придачу, как увеличить межстрочное расстояние в списке (чтобы иконки помещались)?
RTFM - PROP:LineHeight
Написал: Вадим Синявский(200)
Гость

Сообщение Гость »

Иными словами, если я, конечно, правильно понял, после открытия файлов, я должен заполнить массив иконок из этой таблицы (примерно так):
Clear(TAB:ID,-1)
Set(Tab:ID_Key,Tab:ID_Key)
Loop
Next(Table)
IF Errorcode() then break.
i#+=1
?List{PROP:IconList,i#} = tab:IconPath
End
А затем, уже в BRW.SetQueueRecord
Я должен
> присвоить полю очереди браузра, которое соответсвует иконке (которое имеет вид <префикс контрола>:<имя поля>:Icon)
Так?
А как быть в таком случае с закладками с их сортировками? Допустим, пользователь нажал закладку «По имени». Записи перестроились, иконки – нет.

Написал: NewUser(217)
Гость

Сообщение Гость »

Так?
Да

А как быть в таком случае с закладками с их сортировками? Допустим, пользователь нажал закладку «По имени». Записи перестроились, иконки – нет.
а эти индексы иконок должны же как-то условно заполняться. как - зависит от твоей задачи. ну и просто непонятно, что значит иконки не пересторились.
Написал: Вадим Синявский(200)
Гость

Сообщение Гость »

Вот в точке вставки SetQueueRecord было:
SELF.Q.Tab:Name_Icon = 0

Я добавил:
! [Priority 8000]
loc:Icon+=1
SELF.Q.Tab:Name_Icon = loc:Icon

Не работает…. Что не так?

Написал: NewUser(217)
Ответить