Форум: "Начинающим";
Текущий архив: 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