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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
1-1198089818
lookin
2007-12-19 21:43
2008.09.07
Создание-удаление диалога


15-1216241143
Nic
2008-07-17 00:45
2008.09.07
Как проще всего принять денюжку из США и ЕС за программу?


15-1215718823
cyborg
2008-07-10 23:40
2008.09.07
Как повысить скорость программирования?


15-1216394724
Skiminok
2008-07-18 19:25
2008.09.07
Орешник


2-1215946567
Вопросик
2008-07-13 14:56
2008.09.07
Как данные из DBGrid переписать в memo?