Не раз сталкивался с такой проблемой когда необходимо что бы caption у button
был многострочным т.е если подпись не влезает в размеры кнопки она располагалась
не в одну строку а в несколько.
Так Было
Так стало
Как это сделать мы и разберем в данном уроке.
Ну что погнали, открываем delphi создаем новый проект,
сейчас нужно сразу оговориться что делать многострочными мы будем все кнопки,
которые находиться на панели. И сразу же кидаем на форму компонент Panel с
закладки Standart, на неё ставим 2 компонента button так же с
закладки Standart. Далее выберите Первую кнопку и в свойстве Caption напишите
побольше текста, тоже самое проделываем и со второй кнопкой.
А вот теперь и начинается самое интересное.
Переходим в код и после ключевого слова private пишем
procedure SetMultiLineButton(AParent: TWinControl) ;
Нажимаем комбинацию клавиш CTRL+ SHIFT + C если кто не понял, мы только что
создали процедуру, но сейчас она пустая, поэтому Посмотрите что получилось у
меня и добавьте к себе не достающие строки.
procedure TForm1.SetMultiLineButton(AParent: TWinControl);
var j : integer;
ah : THandle;
begin
for j := 0 to AParent.ControlCount - 1 do
if (AParent.Controls[j] is TButton) then
begin
ah := (AParent.Controls[j] as TButton).Handle;
SetWindowLong(ah, GWL_STYLE,
GetWindowLong(ah, GWL_STYLE) OR
BS_MULTILINE) ;
end;
end;
Вот практически и все осталось создать обработчик событий OnCreate на форме и
в нем прописать
SetMultiLineButton (Panel1);
Вот теперь все, запускаем проект, вуаляяяя.... текст на кнопках располагается
в несколько строк.
|