ListBox как таблица

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
AVA
Новичок
Сообщения: 18
Зарегистрирован: 12 Сентябрь 2005, 8:51
Откуда: Пермь

ListBox как таблица

Сообщение AVA »

Нужно сделать на Кларионе таблицу (аналогичную по базовым возможностям 1С или Excel) для хранения в ее ячейках форматированного текста. Думаю, что это должен быть ListBox с PropStyle. Вопросы такие.
1. Как удобнее изменять текст одной ячейки, ее цвет, шрифт и т. д.?
2. Как создать бесконечную по ширине таблицу (динамически создавать столбцы)?
3. Можно ли выделить границы ячейки (например правую)?
4. Можно ли объединять ячейки как в 1С?
5. В каком формате хранить таблицу?
6. Есть ли готовые решения на эту тему?
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Сообщение Дед Пахом »

Что-то мне подсказывает, что в Clarion эта задача практически не решаема.
Я бы предложил воспользоваться Microsoft Office Web Component, там есть контрол Spreadsheet, то что надо (положил на окно и всё). OWC входит в поставку Windows.
С уважением, ДП
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

Это нереально сделать. Тормоза будут безбожные.
Я про применение листбокса для этих целей.
Пробовал в свое время... ерунда получилась :)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

AVA - вот посмотри вот это в виде OLE -> 'OWC11.Spreadsheet.11'
Аватара пользователя
AVA
Новичок
Сообщения: 18
Зарегистрирован: 12 Сентябрь 2005, 8:51
Откуда: Пермь

Сообщение AVA »

Можно подробнее - почему задача практически не решаема, почему тормоза будут? Можно ведь ограничиться 100 столбцами? Хорошо бы получить ответы по всем 6-ти пунктам.
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Re: ListBox как таблица

Сообщение Admin »

AVA писал(а):1. Как удобнее изменять текст одной ячейки, ее цвет, шрифт и т. д.?
Стилями но их может быть не так уж и много...
+ Это все бальшое гемор. Ты попробуй хотя бы сто стилей описать и с ними поработать
AVA писал(а):2. Как создать бесконечную по ширине таблицу (динамически создавать столбцы)?
Библиотека DynaLib
http://dynalib.narod.ru
AVA писал(а):3. Можно ли выделить границы ячейки (например правую)?
Средствами Кларион - нет.
AVA писал(а):4. Можно ли объединять ячейки как в 1С?
Нет
AVA писал(а):5. В каком формате хранить таблицу?
В каком хочешь.
AVA писал(а):6. Есть ли готовые решения на эту тему?
Нет

Используй Windows API, пиши контрол такой ... но это работа для "монстра от программирования"

Пользуйся чужими OCX или еще чем...

Посмотри List&Label для примера => Цена конская! ...
softcreator
Ветеран движения
Сообщения: 78
Зарегистрирован: 04 Август 2005, 9:35
Контактная информация:

Сообщение softcreator »

AVA писал(а):
2. Как создать бесконечную по ширине таблицу (динамически создавать столбцы)?

Библиотека DynaLib
http://dynalib.narod.ru
Не совсем так - для динамического создания колонок можно использовать механизм виртуальных ListBox-ов - чти TFM на тему PROP:VLBproc - после понимания того, что и как делается, поведение динамического списка менятся очень просто и гибко. Используется, например, для показа линейного списка - очереди из одного поля.
ru_alex
Ветеран
Сообщения: 333
Зарегистрирован: 21 Сентябрь 2005, 11:05
Откуда: Нижний Новгород
Контактная информация:

Сообщение ru_alex »

ИМХО:
Если ограничить таблицу, тормозов не будет. У меня таблица как-раз максимум 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. В каком формате хранить таблицу?

Если имеется в виду сохранение на диск, тогда наверное файл из трех полей:
№ столбца
№ строки
значение
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

IMHO все это несерьезно. Баловство из листа делать таблицу!
Лучше найти другой подход чем так вот извращаться...
ru_alex
Ветеран
Сообщения: 333
Зарегистрирован: 21 Сентябрь 2005, 11:05
Откуда: Нижний Новгород
Контактная информация:

Сообщение ru_alex »

Согласен, но очень уж просили по пунктам... :)

С наступающим всех! :)
Ответить