Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Кнопка с ... в Caption [D6, WinXP]


DVM ©   (2003-01-21 23:42:00) 

Не подскажет ли кто, как сделать так, чтобы длинные надписи на кнопках обрубались и заканчивались многоточием, например:
Мастера DELPI...
Конечно есть кнопки сторонних разработчиков (RXSpeedButton), но мне надо свою. В их исходниках (rx) я что-то этого не могу найти.


Игорь Шевченко   (2003-01-22 12:53:00) [1]

Smithson © (22.01.03 12:50)

Наверное тоже DrawText с флажком DT_PATH_ELLIPSIS :-)))


Smithson   (2003-01-22 12:50:00) [2]

С файлами - с именами. Многоточие в середину пихала... Как называлась, тоже не помню.


REA   (2003-01-22 12:37:00) [3]

Там еще вроде процедура была уже борландовская, которая обрезала по какому-то критерию, но с моим склерозом не вспомнить даже в каком юните. То ли с файлами связано то ли с графикой.


DVM   (2003-01-22 11:27:00) [4]


> Игорь Шевченко

Спасибо!


Kair   (2003-01-22 11:22:00) [5]

if Length(Button1.Caption)>x then ...


Игорь Шевченко   (2003-01-22 11:21:00) [6]

Вместо canvas можно использовать
var
DC : HDC;
...
DC := GetDC (Button1.Handle);
try
.....все, что надо
finally
ReleaseDC(Button1.Handle, DC);
end;

Или TControlCanvas...


DVM   (2003-01-22 11:17:00) [7]


> Canvas_совместимый_с_кнопкой

Как получить? У кнопки нет Canvas.


Игорь Шевченко   (2003-01-22 11:12:00) [8]

var
ARect : TRect;
tmp : String;
begin
ARect := Button1.ClientRect;
InflateRect(ARect, -2, 0);
tmp := Button1.Caption;
DrawText (Canvas_совместимый_с_кнопкой.Handle, PChar(tmp), -1, ARect, DT_END_ELLIPSIS OR DT_MODIFY_STRING OR DT_SINGLELINE);
Setlength(tmp, StrLen(PChar(tmp));
Button1.Caption := tmp;
end;

Примерно так, набросал на скорую руку...


Chubais   (2003-01-22 11:06:00) [9]

при прорисовке смотри сколько пикселей занимает текст, и сколько пикселей ширина кнопки, делай выводы


DVM   (2003-01-22 10:51:00) [10]

Неужели никто не знает?
Я подозреваю, что надо использовать что то вроде, но не знаю где и как.
DrawTextEx(Canvas.handle, Caption, StrLen(Caption), Rect,
DT_END_ELLIPSIS, nil);


Наверх

Титульная страница Поиск, карта сайта Написать письмо