Вверх ↑
Этот топик читают: Гость
Ответов: 689
Рейтинг: 20
#1: 2009-06-17 14:26:31 ЛС | профиль | цитата
Общем суть такая: для текущего проекта использую IconsManager. Иконок много, они будут отображать статус объявления. Иконки большие: 128*128, экзешник сейчас не очень большой, но все же.
Хотелось бы создать несколько таких библиотек и использовать через настройки. Ну например, летом иконки имеют некий летний оттенок, зимой зимний, в определенный праздник - соответствующий. Тут получается, что под каждую такую прибамбулину придется менять екзешник, что не правильно в корне. Как бы мне иконки засунуть в библиотеку или скажем в некий отдельный файл.

Вариант с выкладыванием их в отдельный каталог не хотелось бы вовсе. Хотелось бы: пришло время заменить иконки - подсунули файл, все поменялось.
Помогите с вариантами как реализовать... Может 2, 3 примера?
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#2: 2009-06-17 14:39:42 ЛС | профиль | цитата
oldTV писал(а):
Как бы мне иконки засунуть в библиотеку или скажем в некий отдельный файл

А что, разве IconsManager with WorkIconsManager библиотек не делает в своем формате и не читает их

Скинь icl библиотеки своих иконок, хочу посмотреть, что за зверь
карма: 22

0
Ответов: 689
Рейтинг: 20
#3: 2009-06-17 14:47:07 ЛС | профиль | цитата
не знаю приложится, или не приложится
карма: 0

0
файлы: 1fornesco.rar [255.3KB] [334]
Разработчик
Ответов: 26305
Рейтинг: 2146
#4: 2009-06-17 15:53:00 ЛС | профиль | цитата
oldTV, вот, держи пример, но увы и ах, заносить иконки перед сохранением в свой формат придется по одной, чтение стандартных библиотек icl не поддерживает формат 128x128. В архиве лежит пример собственной бибиотеки из двух иконок. Работает очень просто -- кидаешь свою иконку на поле и нажимаешь Add Icon, она появляется в поле таблицы, кидаешь следующую и тд. Когда закончишь, нажимаешь Save Lib
карма: 22

0
файлы: 1project_iconlib.zip [44.3KB] [189]
Ответов: 689
Рейтинг: 20
#5: 2009-06-17 16:43:05 ЛС | профиль | цитата
nesco, я давно говорил что ты гений, но ты не веришь все... кстати, работает нормально

Я так понял что
а) чтобы работало с WorkIconsManager на использовать библиотеки иконок созданные в твоей программе
б) как теперь их читать - не читает мой пример, подскажите пожалуйста

code_13777.txt
карма: 0

0
файлы: 1code_13777.txt [2.1KB] [707]
Разработчик
Ответов: 26305
Рейтинг: 2146
#6: 2009-06-17 17:00:40 ЛС | профиль | цитата
oldTV писал(а):
на использовать библиотеки иконок созданные в твоей программе

Не использовать стандартные icl библиотеки. Е мое, я же пример кинул созданной в этой проге собственной библиотеки
------------ Дoбавленo в 17.06:
oldTV писал(а):
как теперь их читать

Ну ты прочитай описания к точкам-то. Не LoadIcon надо использовать для чтения библиотеки, а LoadIlist. Да и вообще на твоей схеме я не нашел, как ты читаешь библиотеку иконок
карма: 22

0
Ответов: 689
Рейтинг: 20
#7: 2009-06-17 17:10:24 ЛС | профиль | цитата
nesco, очень странно он работает.
я раньше указывал менеджер иконок и индекс иконки из него передавал через строку. А в твоем примере я должен иконку цеплять из массива и передавать в поток. Так у меня не работает.
Почему нельзя просто индекс передать и получить иконку в таблице?
------------ Дoбавленo в 17.12:
у меня почему то не загружается иконки, вот почему
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#8: 2009-06-17 17:14:05 ЛС | профиль | цитата
Вот, твой пример. Внимательно посмотри, куда прописан файл, на что подана загрузка и как установлен праметр та,лицы NIdxIcon



Add(MainForm,707227,294,308)
{
Width=825
Height=586
link(onCreate,5924354:doLoadIList,[])
}
Add(WorkIconsManager,5924354,357,315)
{
IListFileName="probe.lci"
IconsManager="qwerty"
Point(doLoadIList)
}
Add(IconsManager,6205041,357,357)
{
Name="qwerty"
ImgSize=128
Icons=[]
}
Add(MTStrTbl,2019587,630,357)
{
Left=2
Top=2
Width=811
Height=497
Font=[Tahoma,10,0,0,204]
Name="mainTable"
Layout="vsection02"
WidthScale=100
HeightScale=90
Columns=#8:Icon=128|8:Data=120|8:Info=870|5:Txt=0|9:picPath=0|11:picStatus=0|9:Autor=120|12:DateInsert=0|
NIdxIcon=0
FlatScroll=1
ColumnClick=1
ColorItems=0
Style=4
Grid=0
SmallIconsManager="qwerty"
LargIconsManager=""
StateIconsManager=""
DrawManager="drawManager"
}
Add(FormatStr,13774778,476,413)
{
DataCount=3
Mask="%1;%1;%2;%2;;;%3;;%1;%3"
link(onFString,3901195:doMTString,[(538,419)(538,433)])
link(Str1,539602:Text,[(482,380)(412,380)])
link(Str2,11123471:Text,[(489,380)(454,380)])
link(Str3,1236472:Text,[])
}
Add(MST_RowAction,14537100,630,413)
{
MSTControl="mainTable"
}
Add(MT_String,3901195,567,413)
{
Point(doMTString)
link(onResult,14537100:doRowAction,[])
}
Add(Button,3057427,406,413)
{
Left=5
Top=530
link(onClick,13774778:doString,[])
}
Add(Edit,1236472,490,315)
{
Left=125
Top=505
Text="13959124"
}
Add(Edit,11123471,448,315)
{
Left=65
Top=505
Text="Обе системы поддерживают мегапиксельную запись (до 8 мегапикселей) в форматах M-JPEG, MPEG-4 и H.264. Плюс ко всему существует возможность записи по расписанию или какому-либо событию. VioStor-2012/2008 NVR совместимы с IP камерами практически всех хорошо известных производителей – AXIS, ACTi, Arecont, Canon, Cisco, D-Link, EDIMAX, ELMO, EtroVision, GANZ, iPUX, IQeye, LevelOne, Linksys, MOBOTIX, Panasonic BB/ BL/ i-Pro, SANYO, SONY, TOA, TOSHIBA, TRENDnet, VIVOTEK и Y-CAM.

Как уже упоминалось выше, VioStor-2012/2008 NVR снабжены двумя SATA дисками с горячим подключением. Диски можно объединить в RAID 0, RAID 1 или JBOD массив. Все настройки осуществляются через веб интерфейс и не должны вызвать каких-либо затруднений. "
}
Add(Edit,539602,406,315)
{
Left=5
Top=505
Text="0"
}
Add(MST_DrawManager,4452919,630,308)
{
Name="drawManager"
IconSize=128
Gradient=0
}
Add(DoData,3981012,357,413)
{
}

------------ Дoбавленo в 17.17:
oldTV писал(а):
Почему нельзя просто индекс передать и получить иконку в таблице?

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

Просто новая таблица работает с кортежами данныхи и позволяет прицепить к каждой ячейке хвостом ещу кучу любых данных, вот потому и добавлены параметры NIdxIcon и NColorRow. По ним из кортежа таблица выбирает позиции индексов иконок и цвет ячеек. Если эти параметры равны -1, то индекс иконки идет сразу же за подстроками, которых в кол-ве равным кол-ву столбцов, а за индексом иконки идет цвет строки, если он включен.
------------ Дoбавленo в 17.24:
У тебя индекс иконки, насколько я понял идет первым, вот я и установил позицию NIdxIcon в 0 (позиции, как и индексы, начинаются с 0)
карма: 22

0
Ответов: 689
Рейтинг: 20
#9: 2009-06-17 17:28:14 ЛС | профиль | цитата
пошло. спасибо. мои ошибки в имени файла. твоя программа создает библиотеку иконок с именем probe.lci, и я ее переименовал в общее пространство имен, как мой экзешник называется. и не работает после этого. ставлю обратно в probe - работает

это фича
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#10: 2009-06-17 17:32:37 ЛС | профиль | цитата
oldTV писал(а):
это фича

Да не должно быть такого, че-то ты там намудрил
карма: 22

0
Ответов: 689
Рейтинг: 20
#11: 2009-06-17 17:39:45 ЛС | профиль | цитата
мне бы с чего врать? переименуй в blabla.lci и увидишь
сейчас дергаю схему на предмет другого имени - вообще перестала работать, ни лоад ни сайв

------------ Дoбавленo в 17.44:
не в имени дело, но что явно не то с файлом
------------ Дoбавленo в 17.44:
сейчас открываются все библиотеки icl спокойно и читаются
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#12: 2009-06-17 17:45:44 ЛС | профиль | цитата
oldTV писал(а):
переименуй в blabla.lci и увидишь

Переименовал, и в blabla.lci, и еще в черт знает во что, и в имя программы и с расширением -- прекрасно сохраняет библиотеку.
Я тебе привел пример, который пишет и читает только имя probe.lci, очисти свойство IListFileName и предусмотри ввод имени при сохранении, тогда все будет работать. Ты что, основные принципы работы с данными забыл -- первой читается верхняя точка, затем свойство и только потом поток
карма: 22

0
Ответов: 689
Рейтинг: 20
#13: 2009-06-17 17:50:39 ЛС | профиль | цитата
опять наврал - твоя lci, это не библиотека вовсе, это обычная иконка. в icoFX библиотека твоя и мои выглядят по разному: моя, как некий набор иконок (например крест, инфо и т.д, но с разными разрешениями, твоя как иконка, есть другие иконки, тот же крест и инфо, но такого же разрешения, одного.

Общем все как то странновато открывается. Но: работает и на этом все. Спасибо тебе, ты профи.
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#14: 2009-06-17 17:50:51 ЛС | профиль | цитата
oldTV писал(а):
icl спокойно и читаются

Не может оно читать нормально 128x128, уменьшает до 32, а затем увеличивает до 128. Мне не удалось зачитать эти библиотеки нормально, пришлось сделать через добавление иконок в список
карма: 22

0
Ответов: 689
Рейтинг: 20
#15: 2009-06-17 17:51:07 ЛС | профиль | цитата
наврал - я про себя.
карма: 0

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