Страница 1 из 2
Иконки в ListBox
Добавлено: 29 Ноябрь 2010, 11:34
Jornada
Подскажите, какие есть варианты нарисовать иконку в листбоксе, так, чтобы она рисовалась от левой границы ячейки и до правой без пропусков. Имеется ввиду, что размер иконки по ширине совпадает с шириной ячейки, ресайз колонок не рассматриваем.
Re: Иконки в ListBox
Добавлено: 29 Ноябрь 2010, 11:56
Yufil
А было в доке по CW6 - надо выводить строку по формату @p pb.
Re: Иконки в ListBox
Добавлено: 29 Ноябрь 2010, 12:11
Jornada
Смотрел. На форуме даже примерчик есть. С правой границей хорошо, а левая граница иконки отступает от линии ячейки на какое то количество точек. И не побороть что то.
Re: Иконки в ListBox
Добавлено: 29 Ноябрь 2010, 12:44
Jornada
Пардон.. высота строки все портила. Все ок.
Re: Иконки в ListBox
Добавлено: 29 Ноябрь 2010, 16:28
Jornada
А такой вопрос - как убрать разметку между столбцами? Совсем)
Re: Иконки в ListBox
Добавлено: 30 Ноябрь 2010, 0:17
Admin
Jornada писал(а):А такой вопрос - как убрать разметку между столбцами? Совсем)
"Ху ис" разметка в вашем понимании?
Re: Иконки в ListBox
Добавлено: 30 Ноябрь 2010, 4:02
Admin
Jornada писал(а):А такой вопрос - как убрать разметку между столбцами? Совсем)
Тут подсказали что возможно имеется в виду правая граница столбца в листбоксе.
Тогда в форматере листа:
Right Border =>
off ! убирает саму полосу за которую тянем при ресайзе колонки
Resizeable =>
off ! соответственно отключает ресайз для столбца
Но вроде это сильно просто для вашего вопроса. Если имелось в виду другое - объясните.
Спасибо
Re: Иконки в ListBox
Добавлено: 01 Декабрь 2010, 10:27
Jornada
Сам виноват.. как спросил, так и ответили)) Объясню задачу - есть необходимость построить диаграмму ганта. Вот и думаю, как ее реализовать. Можно конечно бокс нарисовать с сеткой, но значений много и придется какой то скролл реализовывать. И практически тащить весь функционал листбокса. Если убрать правую границу галочку сняв, то сетки вобще не будет, но тогда график плохо читаемый, так как отслеживать даты по оси X становится неудобно. То есть сетка нужна, но "под" иконками. Как ее изобразить? Просто нарисовать линии? Куда то в api смотреть? Если в api, то что за функции?
Clarion 6.3 Legacy
Re: Иконки в ListBox
Добавлено: 01 Декабрь 2010, 11:09
Admin
Jornada писал(а):Сам виноват.. как спросил, так и ответили)) Объясню задачу - есть необходимость построить диаграмму ганта. Вот и думаю, как ее реализовать. Можно конечно бокс нарисовать с сеткой, но значений много и придется какой то скролл реализовывать. И практически тащить весь функционал листбокса. Если убрать правую границу галочку сняв, то сетки вобще не будет, но тогда график плохо читаемый, так как отслеживать даты по оси X становится неудобно. То есть сетка нужна, но "под" иконками. Как ее изобразить? Просто нарисовать линии? Куда то в api смотреть? Если в api, то что за функции?
Clarion 6.3 Legacy
Пришлось лезть в википедию и смотреть что такое Диаграмма Ганта (
http://ru.wikipedia.org/wiki/Диаграмма_Ганта)
С ходу в голову пришел вот такой пример. без иконок...
Суть понятна. Сделать график уже дело техники. Самому было лень. Уже домой пора с работы.
Код: Выделить всё
PROGRAM
MAP
END
Window WINDOW('Caption'),AT(,,307,161),FONT('MS Sans Serif',8,,FONT:regular),SYSTEM,GRAY,RESIZE
LIST,AT(0,0),USE(?List),FULL,HVSCROLL
END
!LIST,AT(0,0),USE(?List),FULL,HVSCROLL,FORMAT('50L(2)|M~Суть~10L(2)Y~1~@P PB@10L(2)Y~2~@P PB@10L(2)Y~3~@P PB@')
DefaultFormat EQUATE('50L(2)|FM~Суть~')
LOC:Format STRING(4096)
DataQueue QUEUE
Line STRING(4096)
END
CODE
OPEN(Window)
LOC:Format = DefaultFormat
LOOP W# = 1 TO 100 !ширина !номер !формат
LOC:Format = CLIP(LOC:Format) & '13L(2)Y~' & W# & '~@P PB@'
END
?List{PROP:Lineheight} = 10
?List{PROP:Format} = LOC:Format
?List{PROP:From} = DataQueue
! стилей можно наделать море разных.
?List{PROPSTYLE:BackColor,1} = COLOR:Red
?List{PROPSTYLE:BackSelected,1} = COLOR:Red
?List{PROPSTYLE:BackColor,2} = COLOR:Blue
?List{PROPSTYLE:BackSelected,2} = COLOR:Blue
?List{PROPSTYLE:BackColor,3} = COLOR:None
?List{PROPSTYLE:BackSelected,3} = COLOR:None
LOOP W# = 1 TO 1000
CLEAR(DataQueue)
DataQueue.Line = 'Строка #' & FORMAT(W#,@N04)
LOOP 99 TIMES
! набиваем ячейки. проявив смекалку можно сделать диаграмму
! RANDOM(1,3) - стиль из описанных выше
! |1| - просто заполнитель т.к. пусто не прокатывало у меня
! разбираться не стал.
DataQueue.Line = CLIP(DataQueue.Line)&'|1|'&RANDOM(1,3)
END
! делаем ячейку 100 чистой... для красоты
DataQueue.Line = CLIP(DataQueue.Line)&'|1|0'
ADD(DataQueue)
END
ACCEPT
END
CLOSE(Window)
Re: Иконки в ListBox
Добавлено: 01 Декабрь 2010, 11:30
BOB
Не смотрел что за ганта , но наверно графика.
Если работа разовая посмотри libsrc\cfilimage?.* если на долго то копай opengl. С ogl время уйдет больше , но оно того стоит.
Re: Иконки в ListBox
Добавлено: 01 Декабрь 2010, 17:09
Yufil
Добрый день!
Делал диаграмму Гантта, но без всякого листбокса.
Сделал скроллируемый экран и рисовал графическими контролами. Более того, покрыл регионом и позволил растягивать границы прямоугольников.
Re: Иконки в ListBox
Добавлено: 01 Декабрь 2010, 19:12
Jornada
Не.. вариант с установкой фона в ячейке не канает. Все будет сливаться, а если делать разными цетами - то рябить в глазах будет. Да и вобщем то некрасиво.
Скроллируемый экран тоже делать не хочется. т.к. предполагается, что графиков будет много и грузить их все - накладно.
Вот пример:
Хочется сделать что то похожее в плане графики. Я думал, что можно с иконками, через листбокс, но тогда надо придумать как самому сетку нарисовать "под" иконками. Можно заморочиться и нарисовать все вручную.. но есть мнение, что при скролле этого безобразия все рябить и дергаться будет, поэтому я склоняюсь все же к листбоксу. Тем более, что функционально с этими графиками будут работать, как с листбоксом и изобретать велосипед совершенно не хочется.
Поэтому все же вопрос - как такую сетку сделать?)
Re: Иконки в ListBox
Добавлено: 01 Декабрь 2010, 19:55
Дед Пахом
Могу предложить как вариант
http://ingasoftplus.com/id133.htm, правда не бесплатный и потрахаться тоже придётся, чтобы графики начертить.
Re: Иконки в ListBox
Добавлено: 01 Декабрь 2010, 19:57
Jornada
Не.. мне интересно самому сделать) я ж не готовое решение спрашиваю, а в какую сторону смотреть)
Re: Иконки в ListBox
Добавлено: 01 Декабрь 2010, 21:09
Дед Пахом
Jornada писал(а):Не.. мне интересно самому сделать) я ж не готовое решение спрашиваю, а в какую сторону смотреть)
Так бы и сказал, что денег нет
