ListBox как таблица
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
ListBox как таблица
Нужно сделать на Кларионе таблицу (аналогичную по базовым возможностям 1С или Excel) для хранения в ее ячейках форматированного текста. Думаю, что это должен быть ListBox с PropStyle. Вопросы такие.
1. Как удобнее изменять текст одной ячейки, ее цвет, шрифт и т. д.?
2. Как создать бесконечную по ширине таблицу (динамически создавать столбцы)?
3. Можно ли выделить границы ячейки (например правую)?
4. Можно ли объединять ячейки как в 1С?
5. В каком формате хранить таблицу?
6. Есть ли готовые решения на эту тему?
1. Как удобнее изменять текст одной ячейки, ее цвет, шрифт и т. д.?
2. Как создать бесконечную по ширине таблицу (динамически создавать столбцы)?
3. Можно ли выделить границы ячейки (например правую)?
4. Можно ли объединять ячейки как в 1С?
5. В каком формате хранить таблицу?
6. Есть ли готовые решения на эту тему?
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Re: ListBox как таблица
Стилями но их может быть не так уж и много...AVA писал(а):1. Как удобнее изменять текст одной ячейки, ее цвет, шрифт и т. д.?
+ Это все бальшое гемор. Ты попробуй хотя бы сто стилей описать и с ними поработать
Библиотека DynaLibAVA писал(а):2. Как создать бесконечную по ширине таблицу (динамически создавать столбцы)?
http://dynalib.narod.ru
Средствами Кларион - нет.AVA писал(а):3. Можно ли выделить границы ячейки (например правую)?
НетAVA писал(а):4. Можно ли объединять ячейки как в 1С?
В каком хочешь.AVA писал(а):5. В каком формате хранить таблицу?
НетAVA писал(а):6. Есть ли готовые решения на эту тему?
Используй Windows API, пиши контрол такой ... но это работа для "монстра от программирования"
Пользуйся чужими OCX или еще чем...
Посмотри List&Label для примера => Цена конская! ...
-
- Ветеран движения
- Сообщения: 78
- Зарегистрирован: 04 Август 2005, 9:35
- Контактная информация:
Не совсем так - для динамического создания колонок можно использовать механизм виртуальных ListBox-ов - чти TFM на тему PROP:VLBproc - после понимания того, что и как делается, поведение динамического списка менятся очень просто и гибко. Используется, например, для показа линейного списка - очереди из одного поля.AVA писал(а):
2. Как создать бесконечную по ширине таблицу (динамически создавать столбцы)?
Библиотека DynaLib
http://dynalib.narod.ru
-
- Ветеран
- Сообщения: 333
- Зарегистрирован: 21 Сентябрь 2005, 11:05
- Откуда: Нижний Новгород
- Контактная информация:
ИМХО:
Если ограничить таблицу, тормозов не будет. У меня таблица как-раз максимум 100 столбцов и очередь из 200 полей (значения и стили). Нормально работает. К тому же, если и количество строк ограничишь, еще лучше будет.
По пунктам
1. Как удобнее изменять текст одной ячейки, ее цвет, шрифт и т. д.?
Здесь проблем нет.
Пример работы с выделенной ячейкой:
get(myqueue,choice(?list))
MyAny &= what(myqueue,?list{prop:column}*2-1) !значение
MyAny1 &= what(myqueue,?list{prop:column}*2) !стиль.
И делай с ними что хочешь.
2. Как создать бесконечную по ширине таблицу (динамически создавать столбцы)?
Формируешь prop:format и следишь чтобы количество колонок не превышало количество полей в очереди, иначе при обращении упадет.
3. Можно ли выделить границы ячейки (например правую)?
Если имеется в виду нарисовать границы некой ячейки в виде линии, то по-моему нельзя, можно только у всего столбца и у всех строк сразу.
4. Можно ли объединять ячейки как в 1С?
По-моему нет. Если это необходимо, тогда лист не подойдет, а рисовать каждую ячейку отдельным контролом, точно будут тормоза.
5. В каком формате хранить таблицу?
Если имеется в виду сохранение на диск, тогда наверное файл из трех полей:
№ столбца
№ строки
значение
Если ограничить таблицу, тормозов не будет. У меня таблица как-раз максимум 100 столбцов и очередь из 200 полей (значения и стили). Нормально работает. К тому же, если и количество строк ограничишь, еще лучше будет.
По пунктам
1. Как удобнее изменять текст одной ячейки, ее цвет, шрифт и т. д.?
Здесь проблем нет.
Пример работы с выделенной ячейкой:
get(myqueue,choice(?list))
MyAny &= what(myqueue,?list{prop:column}*2-1) !значение
MyAny1 &= what(myqueue,?list{prop:column}*2) !стиль.
И делай с ними что хочешь.
2. Как создать бесконечную по ширине таблицу (динамически создавать столбцы)?
Формируешь prop:format и следишь чтобы количество колонок не превышало количество полей в очереди, иначе при обращении упадет.
3. Можно ли выделить границы ячейки (например правую)?
Если имеется в виду нарисовать границы некой ячейки в виде линии, то по-моему нельзя, можно только у всего столбца и у всех строк сразу.
4. Можно ли объединять ячейки как в 1С?
По-моему нет. Если это необходимо, тогда лист не подойдет, а рисовать каждую ячейку отдельным контролом, точно будут тормоза.
5. В каком формате хранить таблицу?
Если имеется в виду сохранение на диск, тогда наверное файл из трех полей:
№ столбца
№ строки
значение