![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кнопка с ... в 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);