Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];

Вниз

TLabel   Найти похожие ветки 

 
ванъка   (2008-07-29 14:06) [0]

Не сталкивался с такой ситуацией, подскажите как мне действовать. Хочу сделать визуальный наследник обычного TLabel, но с подчеркиванием снизу в виде "тире пропуск тире" (- - - - -) , а не сплошной линией. Ну и хочу что бы длина этого подчеркивания автоматически вычислялась исходя из длины текста в TLabel.

В какую сторону копать?


 
Игорь Шевченко ©   (2008-07-29 14:07) [1]


> Ну и хочу что бы длина этого подчеркивания автоматически
> вычислялась исходя из длины текста в TLabel.


в сторону TLabel.Canvas.TextWidth


 
ванъка   (2008-07-29 14:17) [2]

Это я понял. А вот в каком именно месте (в коде наследника TLabel) стоит заниматься рисованием?


 
Leonid Troyanovsky ©   (2008-07-29 14:21) [3]


> ванъка   (29.07.08 14:17) [2]

http://delphimaster.net/view/1-1215345387/

--
Regards, LVT.


 
Игорь Шевченко ©   (2008-07-29 14:30) [4]


> А вот в каком именно месте (в коде наследника TLabel) стоит
> заниматься рисованием?


можно в Paint, можно в DoDrawText


 
ванъка   (2008-07-29 15:16) [5]


> Leonid Troyanovsky ©   (29.07.08 14:21) [3]

Огромное спасибо. Это то что нужно.

Один вопрос, я не понял каким образом можно нарисовать пунктир чуть ниже (я хочу что бы расстояние между пунктирной линией и словом было больше). Манипуляции с увеличением значений в ARect и MoveTo, LineTo не помогают.

Подскажете?


 
Leonid Troyanovsky ©   (2008-07-29 18:20) [6]


> ванъка   (29.07.08 15:16) [5]

> Подскажете?

Тогда Paint, со всеми остановками.

--
Regards, LVT.


 
{RASkov} ©   (2008-07-29 18:40) [7]

... и размер нужно самому считать при autosize при ручном выставлении выставлять высоту чуть больше чем нужно, т.е. на сколько ниже должна быть полоса подчеркивания...(это если в одну строку, в более одной строки - немного сложнее)
Компонент с задуманным не сложен.... нужно просто внимательно посмотреть на код TCustomLabel и подправить необходимые методы...


 
ванъка   (2008-07-29 21:41) [8]

Спасибо еще раз рекомендации. Но я опять не могу справиться с пустяком: даже в перекрытом Paint у меня не получается сделать пунктир ниже.

procedure TNewLabel.Paint;
begin
 inherited;
 with Canvas do
 begin
   Pen.Style := psDot;
   MoveTo(...);
   LineTo(...);
 end;
end;


?


 
{RASkov} ©   (2008-07-29 21:48) [9]

> [8] ванъка   (29.07.08 21:41)

В Paint тебе доступна канва рисования, но ее размер выставляется не в Paint. Ты сделай канву больше(т.е. размер самого TNewLabel) и рисуй где хочешь в пределах его канвы.
А пока ты пытаешься рисовать вне области TNewLabel...


 
ванъка   (2008-07-29 22:02) [10]

Мда, это я затупил. Спасибо, все работает.



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

Форум: "Начинающим";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
2-1217335816
Mops
2008-07-29 16:50
2008.09.07
1251 в UTF


3-1204811873
Rax
2008-03-06 16:57
2008.09.07
Как можно узнать, какие строки показываются в DBGRID


15-1215752865
Vlad Oshin
2008-07-11 09:07
2008.09.07
Задачка с подвохом, ибо пятница. Гарднера


2-1217409328
cyborg
2008-07-30 13:15
2008.09.07
поиск по маске


2-1217146595
Newser
2008-07-27 12:16
2008.09.07
Как найти фрагмент текста (дата)?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский