C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
RichEdit, или что-то подобное
Deem
Отправлено: 14.06.2004, 16:41


Мастер участка

Группа: Участник
Сообщений: 327



Народ, чего-то я не доганяю: хочу сделать колонки в RichEdit, а не могу. В смысле, если шрифт непропорциональный, то могу. А чтоб красиво — нет. Есть возможность? Можно, конечно, дозабивать строку пробелами до равной длины. Но бывает, что не попасть никак.
Как, вобще, ворд делает со своими закорючками (на верхней линейке, что потом столбцы табами ровнять можно. А табы могут быть переменной длины,т.е. скольно нужно)?
Или пошлете формат RTF изучать? Не пойду. Боьшой облом! sad.gif
olegenty
Отправлено: 15.06.2004, 08:47


Ветеран

Группа: Модератор
Сообщений: 2412



воспользуйся TRichView от www.trichview.com. а как избавить от баннера тут уже неединыжды обсуждалось. (если надо — повторю)

как там работать с таблицами — есть в примерах. а примеры там есть на все случаи жизни.
Lazy
Отправлено: 15.06.2004, 14:12


Ученик-кочегар

Группа: Участник
Сообщений: 12



Лучше повторить, потому что у меня поиск по форуму ничего не дал
Deem
Отправлено: 15.06.2004, 15:55


Мастер участка

Группа: Участник
Сообщений: 327



А самому нельзя закодить таблицу? Если банеры — так это небесплатная, значить. А мне недо легально. smile.gif

Отредактировано Deem — 15/06/2004, 17:08
klen
Отправлено: 15.06.2004, 16:05


Машинист паровоза

Группа: Участник
Сообщений: 239



Хочеш легально и за деньги — купи у меня легально бесплатный крек smile.gif для RV.
** pasha
Отправлено: 15.06.2004, 21:14


Не зарегистрирован







Воспользуйтесь компонентом ListView со свойством vsList
или StringFrid
Deem
Отправлено: 16.06.2004, 10:00


Мастер участка

Группа: Участник
Сообщений: 327



В Grid и List нельзя писать как хочется: только таблица. smile.gif Маловато будет.
Deem
Отправлено: 16.06.2004, 11:10


Мастер участка

Группа: Участник
Сообщений: 327



В обычном RichEdit можно делать колонки при помощи таба '\t'. Я это и хотел у вас узнать. Пришлось самому проверять гипотизу. smile.gif

Поле редактора разбито та позиции табов, т.е. таб — это не 8 символов 'space', как в текстовом режиме или на принтере.
Если таб стоит после слова, не дотягивающего до первой таб-позиции, то этот таб будет ровно такой длины, чтобы дотянуться до нее. Второй таб будет уже нормальной длины и дотянется до второй таб-позиции.
Доходит? Если строки колонки разной длины, но все короче длины одного нормального таба, то добавив к ним по табу и строки второго столбца, мы выравниваем второй столбец по вертикали.
Если в первой колонке строки разной длины, и одни короче одного таба, другие длинее одного, но короче двух, то к тем, что короче двух добавим один таб, а к тем что короче одного — добавим два таба, а затем ко всем строкам добавим строки второго столбца, и второй столбец будет выровнен по второй таб-позиции.
Это все не зависит от того, пропорциональный шрифт или нет!
Осталось чуть-чуть: определить длину полного таба для конкретного шрифта, а затем узнать, сколько полных табов помещается в длину строки столбца текста, чтоб знать сколько надо добавить табов для выравнивания следующего столбца.







Вернуться в Вопросы программирования в C++Builder