Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизШирина кнопки Найти похожие ветки
← →
Gemini (2004-09-15 17:38) [0]Мастера, создаю кнопку в Run-Time. Подскажите как высчитать длину слова, заданного в Caption"e этой кнопки чтобы установить ширину кнопки. Caption заранее не известен.
← →
Skier © (2004-09-15 17:48) [1]Класс кнопки какой ?
← →
Gemini (2004-09-15 17:57) [2]TJvButton
← →
Skier © (2004-09-15 18:00) [3]хм...не попадался...
попробуй использовать TControlCanvas
← →
Gemini (2004-09-15 18:05) [4]В смысле?
Ширину я установлю. Мне нужно знать какой длины будет скажем "Ok", а какой "Скриншот". Тогда ширина кнопки, например, длина+20. Вот эта длина и нужна. От класса кнопки она по-моему не зависит.
← →
Суслик © (2004-09-15 18:09) [5]Как один из вариантов:
Берешь работоспособный canvas.
Его можно взяь у самой же кнопки или с помощью TControlCanvas.
Присваиваешь font у canvas тот шрифт, которым выводится текста на кнопке.
Вызваешь у canvas метод textwidth.
Все.
← →
Юрий Зотов © (2004-09-15 18:41) [6]function CalcBittonWidth(Btn: TButton): Integer;
var
DC: HDC;
R: TRect;
begin
R := Btn.ClientRect;
DC := GetDC(Btn.Handle);
try
DrawText(DC, PChar(Btn.Caption), Length(Btn.Caption), R, DT_CALCRECT);
Result := R.Right
finally
ReleaseDC(Btn.Handle, DC)
end
end;
← →
Gemini (2004-09-15 18:45) [7]Спасибо. Буду пробовать.
← →
Gemini (2004-09-18 20:11) [8]2 Юрий Зотов: она считает больше, чем нужно. Т.е. чем длиннее текст в кнопке, тем больше получаются пустые области по краям. Примерно так: | Caption | и | ДлинныйCaption |. Почему - не знаю. Ширину кнопке даю ту, что вернула функция. Ничего не добавляю.
2 Суслик Ч/з Canvas получилось. Результат стабилен (пока) :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c