Главная страница
    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.035 c
1-1084566997
Sanek_metaller
2004-05-15 00:36
2004.05.30
Как програмно отследить изменения в реестре?


7-1082450495
ЛеонидП
2004-04-20 12:41
2004.05.30
Свой компьютер в сети


1-1084879268
62mkv
2004-05-18 15:21
2004.05.30
Exception + Raise = ????


14-1084382180
NailMan
2004-05-12 21:16
2004.05.30
Че-то запутался с приведением к типу... :-(


14-1084299724
ИМХО
2004-05-11 22:22
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский