Страница 1 из 2

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

Добавлено: 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 иконки для добавления новой иконки ?
Без перебора всего массива (размерность которого, кстати, неизвестна). Заранее спасибо ! :)

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

Добавлено: 11 Январь 2019, 13:43
kreator
Чисто академический интерес? Что-то практику не пойму.

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

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

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

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

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

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

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

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

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

Добавлено: 11 Январь 2019, 15:44
kreator
gopstop2007 писал(а): 11 Январь 2019, 15:18 тоже самое делаю, когда вместо иконок присваиваю свои картинки :)
Просто перестраховка от своих действий в дизайнере? Ведь я изначально знаю сколько у меня в этом массиве членов.

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

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

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

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

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

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

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

Добавлено: 11 Январь 2019, 17:08
Дед Пахом
Тут могут пригодиться custom properties: ?list{'TotalIcons'} = 25

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

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

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

Добавлено: 11 Январь 2019, 17:33
Дед Пахом
Не этого параметра (TotalIcons я только что сам придумал), а User defined properties вот тут.

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

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

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

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

Добавлено: 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'.

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

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