Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Последовательное размещение динамического текста в лэйблах   Найти похожие ветки 

 
IrBisoff ©   (2004-05-14 22:43) [0]

Вот, сколько ни бьюсь, всё никак более-менее нормально не получается. =(

Вобщем, суть проблемы:

Задача: Существует n компонентов (созданных в design-time) а-ля Tlabel (не совсем, его аналог, но сути не меняет), существует текст, загружаемый из файла. Нужно распределить текст по лэйблам последовательно и впритык, при том, что лэйблы многострочные, в них уже есть перенос по словам и полосы прокрутки недопустимы. Под последовательным переносом имеется в виду нечто, аналоги чего можно видеть в PageMaker или в ворде (вёрстка книжкой), т.е., к примеру, первый фрагмент текста в первом лайбле, продолжение во втором, дальше в третьем и т.д.

Попытка реализации: Поставил фиксированные шрифты и в зависимости от размера лэйблов (ах да, они в ран-тайме могут менять свой размер =( ) подгоняю количество строк и символов в строке. Тормозит (хотя не думаю, что иная реализация тормозить будет меньше) и не подходит для не фиксированных шрифтов, что неприемлимо. =(

Что нужно (возможно, можно и меньшей кровью, но пока что вижу так): Узнать, на каком месте произошел перевод прошлой строки, либо, что ещё проще (в плане использования), узнать где именно (на каком фрагменте текста) заканчивается видимая область компоненты.

Вобщем, хэлп ! Проект застрял. =((((( Буду чрезвычайно благодарен даже за теоретическую помощь, а за пример реализации буду вечным должником. ;)


 
GuAV   (2004-05-15 00:04) [1]

Canvas.TextExtent


 
IrBisoff ©   (2004-05-15 02:16) [2]

Всё было бы так просто, если бы текст не подгружался в компоненту одной строкой. Но он подгружается именно так. Да и ещё один побочный фактор - Форматируется он уже внутри компоненты, т.е. текст выводится не тем шрифтом, что указан в font. =( В итоге, даже если всё выводить одним шрифтом TextExtent показывает высоту одной строки и ширину всего текста.

Короче говоря, я пока что создаю массив обычных TLabel"ов под каждый шрифт (получается до десятка в строку =( ), в каждый ложу ровно столько текста, сколько он может и должен поместить и ставлю их на форме впритык. Через анус, но хоть как-то. =\

ЗЫ: Может ещё какие-то варианты ?



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.036 c
1-1084881293
arhis
2004-05-18 15:54
2004.05.30
Пауза


7-1083217362
TumoxA
2004-04-29 09:42
2004.05.30
Запуск и завершение приложений


11-1074451034
Ego_Brain
2004-01-18 21:37
2004.05.30
МультиФорм в МЦК


1-1084964951
SMT
2004-05-19 15:09
2004.05.30
Очистка свободного пространства экрана вокруг формы


14-1083736529
S.N.P.
2004-05-05 09:55
2004.05.30
Сетевой экран





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский