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

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

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

    Не раз сталкивался с такой проблемой когда необходимо что бы 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);

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

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

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

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



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

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

    интерес 06 Dec 2012 в 00:00 #
    Нуты загнул, что такую программу написать нужно неодин месяц промучаться!
    интерес 06 Dec 2012 в 00:00 #
    Чтобы вставить код entera (#13) нужно каждую строку выделять, т. е. например: ′Щелкни!′ + #13 + ′увидишь!′
    Guga 03 Sep 2012 в 00:00 #
    Какой WordWrap у динамических объектов? На какую панель бросить? Я пробовал менять WordWrap в динамике ничего не получилось. Поэтому приведенный пример класс!!! 5 баллов.
    Andrey 02 Feb 2012 в 00:00 #
    всем привет, подскажите пожалуйста как можно сделать вид кнопки в делфи 7 в виде какой то страны??..т.е что бы я мог загрузить картинку а потом привязать её к кнопки...буду очень благодарен за помощь...
    Andrey 02 Feb 2012 в 00:00 #
    что бы было понятнее мне надо сделать прогу, по географии тобишь, карта мира, по нажатию на какую то страну должно выделять границы, и выпадать должна инфа где то с боку типа насиление, площядь и тд...

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