Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2015, 23:13   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Проверка на то, помещается ли текст в Кэпшине кнопки

Подскажите пожалуйста, как сделать проверку на то, вылазит ли текст за границы кнопки (текст выводится в Баттон Кэпшн), чтобы можно было написать что-то вроде:

while toobig > 0 do
Button1.Font.Size := Button1.Font.Size - 1;
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 04.01.2015, 01:51   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Эх. Где мои тридцатые-сороковые?
Код:
function GetTextWidthInPixels(AText: string; AControl: TControl): integer;
// Copyright by Игорь Шевченко ©
var
propInfo: PPropInfo;
thisFont: TFont;
begin
  Result := 0;
  propInfo := GetPropInfo(AControl.ClassInfo, 'Font');
  if propInfo <> nil then begin
    thisFont := TFont(GetObjectProp(AControl, 'Font'));
    if Assigned(thisFont) then
      with TControlCanvas.Create do
        try
          Control := AControl;
          Font.Assign(thisFont);
          Result  := TextWidth(AText);
        finally
          Free;
        end;
  end;
end;
А кажется что это было только вчера.

Последний раз редактировалось northener; 04.01.2015 в 01:55.
northener вне форума Ответить с цитированием
Старый 04.01.2015, 01:55   #3
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Ах да. Забыл сказать, что в uses надо добавить TypInfo.
Ну и лучше попробовать сначала в разных режимах Windows то самое условие, которое toobig.
northener вне форума Ответить с цитированием
Старый 04.01.2015, 15:08   #4
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Большое спасибо, все работает!
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст слишком длинный не помещается в System::String askerpro Visual C++ 1 09.05.2012 12:55
Проверка на зажатие кнопки *stRong* Общие вопросы Delphi 2 03.03.2012 23:11
Текст полностью не помещается в окно ввода. limansky Общие вопросы Delphi 7 24.09.2011 17:23
Поменять текст кнопки MrRockchip Visual C++ 1 21.02.2011 19:43
Поменять текст у кнопки MrRockchip C++ Builder 1 21.02.2011 19:42