Главная страница
    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.004 c
2-1217419539
D7
2008-07-30 16:05
2008.09.07
FillChar


2-1216983326
@!!ex
2008-07-25 14:55
2008.09.07
Быстрая фрагментация треугольника. Как?


15-1216142835
Guest
2008-07-15 21:27
2008.09.07
Вегетарианство


15-1215881130
Guest
2008-07-12 20:45
2008.09.07
В чём ошибка?


3-1205405023
Eero
2008-03-13 13:43
2008.09.07
Можно ли перерисовать 0 столбец в TDBGridEH?





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