Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1095092611
Yanis
2004-09-13 20:23
2004.10.03
Frame


3-1094448164
AreSS
2004-09-06 09:22
2004.10.03
Помогите с DbGrid и RaveReports!!!


4-1093114982
Thinker
2004-08-21 23:03
2004.10.03
Какая функция возвращает количество свободной оперативной памяти


3-1094586493
sherbacov
2004-09-07 23:48
2004.10.03
протоколирование БД


8-1089658984
DimDim
2004-07-12 23:03
2004.10.03
Картинки в FastReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский