Delphi уроки: Делаем многострочный Caption у Button

Опубиковано: 11.10.2008 г., автор: , просмотров: 40924

Delphi уроки: Делаем многострочный Caption на Примере Button

Не раз сталкивался с такой проблемой когда необходимо что бы caption у button был многострочным т.е если подпись не влезает в размеры кнопки она располагалась не в одну строку а в несколько.

Так Было >>> однострочный button в delphi Так стало >>> Delphi 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);

Вот теперь все, запускаем проект, вуаляяяя.... текст на кнопках располагается в несколько строк.

Кстати не давно заюзал новый Nokia Asha 303 который оснащен 1 ГГц процом и QWERTY клавиатурой, впечатления не совсем однозначные, с одной стороны все сделано довольно интересно и эргономично, но требует определенной привычки с расположению элементов управления.

P.S. Не забываем подписываться на бесплатную мультимедийную рассылку.
Форма для подписки расположена с права и с лева.

До встречи DelphiExpert.ru !!!



Похожие материалы

Последние из рубрики

гость 23 Apr 2011 в 00:00 #
Для кого вообще автор это писал? Продвинутым пользователям это не интересно совсем, они знают как сделать проще.А новичкам не объяснил код "Посмотрите что получилось у меня и добавьте к себе не достающие строки." По каждой строчке надо объяснять что она делает.



Вот практически и все осталось создать обработчик событий OnCreate на форме и в нем прописать

SetMultiLineButton (Panel1);

Как это сделать?
Серж 11 Mar 2011 в 00:00 #
>>"А как многострочную панель сделать?"
Бросте на панель Label, у него WordWrap:=true;
и будет вам счастие ))))
Актив 21 Feb 2011 в 00:00 #
А как многострочную панель сделать?
Бабай 31 Jan 2011 в 00:00 #
andrij "wordwrap існує і реально діє"
Специальные пояснения для andrij
Para sa mga may-akda ito ay mahalaga upang ipakita kung paano gumagana sa mga parameter component "Handle" sa Delphi, at hindi ang paglikha ng multi-buttons. :-))
sashok 15 Dec 2010 в 00:00 #
---Можно ли тоже самое сделать для панели?
для какой панели???

ОтменитьДобавить комментарий