Добавление иконки для списка

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3874
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Добавление иконки для списка

Сообщение Игорь Столяров » 11 Январь 2019, 11:42

Привет всем ! :)

Есть некий список, для которого определены иконки, т.е.

Код: Выделить всё

  ?MyList{Prop:IconList,1} = Icon:Blank
  ?MyList{Prop:IconList,2} = '~exit.ico'
  ...
  ?MyList{Prop:IconList,5} = 'folder.ico'  
  ?MyList{Prop:IconList,9} = '~select.ico'
Можно ли как-то узнать максимальный номер определённой для LIST иконки для добавления новой иконки ?
Без перебора всего массива (размерность которого, кстати, неизвестна). Заранее спасибо ! :)
«V» значит Вендетта !

kreator
Ветеран
Сообщения: 3106
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Добавление иконки для списка

Сообщение kreator » 11 Январь 2019, 13:43

Чисто академический интерес? Что-то практику не пойму.
We are hard at work… for you. :)

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3874
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Добавление иконки для списка

Сообщение Игорь Столяров » 11 Январь 2019, 14:06

kreator писал(а):
11 Январь 2019, 13:43
Что-то практику не пойму.
А я не понимаю как работает телевизор, но это не мешает мне его смотреть. :)

1. Есть процедура, в которую передаётся ?LIST и она заменяет все его иконки на другой стиль или размер.
2. Есть класс, который добавляет для ?LIST подсветку выбора записи иконкой в разных вариантах.

и т.д. т.е. на самом деле много случаев, когда надо неким образом обработать список иконок LIST.
Но что бы это сделать, надо знать до куда их обрабатывать … Т.е. сколько уже иконок объявлено для ?LIST.
Сейчас это делается тупым перебором на основании предположения, что больше 100 их вроде бы быть не должно. :(
«V» значит Вендетта !

kreator
Ветеран
Сообщения: 3106
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Добавление иконки для списка

Сообщение kreator » 11 Январь 2019, 15:11

В Вашем первом посте было желание добавить. Во втором уже изменить. Разные вещи. Я почему спрашиваю? Потому что, не пойму зачем? Теоретически может быть так. У меня есть столбец с иконкой. Я даю возможность пользователю настроить условия на "его" иконки. Т.е. нужно не только добавить "его" иконки в массив "prop:IconList", но и динамически обработать его условия и правильно подложить его иконки (записать в поле "_Icon" правильный номер в методе SetQueueRecord). Как-то так.
А вообще я бы не стал перебирать этот массив. Заполнял бы его с сотой (двухсотой) позиции и всё. Или есть проблемы с этим?
We are hard at work… for you. :)

gopstop2007
Ветеран
Сообщения: 1186
Зарегистрирован: 25 Март 2009, 21:55

Добавление иконки для списка

Сообщение gopstop2007 » 11 Январь 2019, 15:18

kreator писал(а):
11 Январь 2019, 15:11
А вообще я бы не стал перебирать этот массив. Заполнял бы его с сотой (двухсотой) позиции и всё. Или есть проблемы с этим?
тоже самое делаю, когда вместо иконок присваиваю свои картинки :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

kreator
Ветеран
Сообщения: 3106
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Добавление иконки для списка

Сообщение kreator » 11 Январь 2019, 15:44

gopstop2007 писал(а):
11 Январь 2019, 15:18
тоже самое делаю, когда вместо иконок присваиваю свои картинки :)
Просто перестраховка от своих действий в дизайнере? Ведь я изначально знаю сколько у меня в этом массиве членов.
We are hard at work… for you. :)

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3874
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Добавление иконки для списка

Сообщение Игорь Столяров » 11 Январь 2019, 16:26

kreator писал(а):
11 Январь 2019, 15:11
В Вашем первом посте было желание добавить. Во втором уже изменить.
Я такой непостоянный … :)
Сейчас обработка списка икон LIST и решается для всех задач их перебором … Вопрос в том, что если мы где-то и как-то изменяем
этот список, а потом хотим это повторить - то возникает вопрос ДОКУДА перебирать-то этот массив ? Сколько сейчас икон прикреплено к LIST ?
«V» значит Вендетта !

Ал
Ветеран
Сообщения: 775
Зарегистрирован: 08 Июль 2005, 5:48
Откуда: Россия

Добавление иконки для списка

Сообщение Ал » 11 Январь 2019, 16:58

Игорь Столяров писал(а):
11 Январь 2019, 16:26
kreator писал(а):
11 Январь 2019, 15:11
В Вашем первом посте было желание добавить. Во втором уже изменить.
Я такой непостоянный … :)
Сейчас обработка списка икон LIST и решается для всех задач их перебором … Вопрос в том, что если мы где-то и как-то изменяем
этот список, а потом хотим это повторить - то возникает вопрос ДОКУДА перебирать-то этот массив ? Сколько сейчас икон прикреплено к LIST ?
пиши куда-нибудь на память...

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3874
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Добавление иконки для списка

Сообщение Игорь Столяров » 11 Январь 2019, 17:05

Ал писал(а):
11 Январь 2019, 16:58
пиши куда-нибудь на память...
Это конечно правильно, но в 2019 г. уже хочется-то какое-то общее решение.
Особенно если делаешь класс и методы для обработки очень разных списков … :)
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2193
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Добавление иконки для списка

Сообщение Дед Пахом » 11 Январь 2019, 17:08

Тут могут пригодиться custom properties: ?list{'TotalIcons'} = 25
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3874
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Добавление иконки для списка

Сообщение Игорь Столяров » 11 Январь 2019, 17:21

Дед Пахом писал(а):
11 Январь 2019, 17:08
Тут могут пригодиться custom properties: ?list{'TotalIcons'} = 25
Упс ! А слона-то я и не заметил … А где можно посмотреть описание этого параметра ?
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2193
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Добавление иконки для списка

Сообщение Дед Пахом » 11 Январь 2019, 17:33

Не этого параметра (TotalIcons я только что сам придумал), а User defined properties вот тут.
Вложения
User_Defined_Properties.png
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3874
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Добавление иконки для списка

Сообщение Игорь Столяров » 11 Январь 2019, 17:43

Дед Пахом писал(а):
11 Январь 2019, 17:33
TotalIcons я только что сам придумал
А жаль. С Вашей бы придумкой - да в SoftVelocity работать … :)
Т.е. трамвай сделал круг и в общем-то современная наука не знает общего решения вопроса.

Тупо перебираем иконки в LIST до какой-нибудь цифры N (или даже цифры K) и молимся что выше ничего нет … ;)
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2193
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Добавление иконки для списка

Сообщение Дед Пахом » 11 Январь 2019, 18:05

Игорь Столяров писал(а):
11 Январь 2019, 11:42
?MyList{Prop:IconList,1} = Icon:Blank
Я бы сделал процедуру AddIconToList(SIGNED pListFeq, BYTE pIconNumber, STRING pIconValue):

Код: Выделить всё

  pListFeq{Prop:IconList, pIconNumber} = pIconValue
  pListFeq{'TotalIcons'} = pListFeq{'TotalIcons'} + 1
и заменил бы все прямые присвоения ?MyList{Prop:IconList,1} = Icon:Blank на вызов процедуры, и для любого LIST имел бы известное значение 'TotalIcons'.
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3874
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Добавление иконки для списка

Сообщение Игорь Столяров » 11 Январь 2019, 18:22

Дед Пахом писал(а):
11 Январь 2019, 18:05
заменил бы все прямые присвоения ?MyList{Prop:IconList,1} = Icon:Blank на вызов процедуры
Да, это было бы то, что надо … но для того, что бы это работало надо править стандартные шаблоны …
Там ведь тоже идёт присвоение икон в LIST.
«V» значит Вендетта !

Ответить