Как сделать кнопку в паскаль

от admin

Введение в ABCButtons

ABCButtons — модуль для создания кнопок на PascalABC.NET. Основан на ABCObjects.

Данный модуль является устаревшим (может быть в будущем исключен из среды) и специфическим для PascalABC.NET и не поддерживается другими диалектами Pascal и остальными языками. Современный аналог — Controls.

Содержание

Основные классы [ править ]

ABCButtons содержит следующие классы:

  1. ButtonABC (кнопка) [аналог в Windows Forms]

ButtonABC [ править ]

ButtonABC (наследуется от UIElementABC) — класс кнопки. Для ее создания пишите:

TButton/ru

TButton является компонентом, представляющим собой базовый элемент управления в виде кнопки. Данный компонент доступен на вкладке Standard палитры компонентов.

Компонент TButton является одним из самых основных элементов управления, располагаемых на форме. Щелкая мышью по кнопке (или выбирая её с помощью клавиши [Tab] и нажимая клавишу [Enter]) происходит срабатывание действия. Этот щелчок называется событием. Для его обработки вам необходим обработчик события.

Вы можете добавить кнопку на форму, щелкнув на элемент TButton (прямоугольная кнопка с надписью «OK» по середине), расположенный на вкладке Standard палитры компонентов, и пометив его на форму с помощью щелчка мыши.

Обработчик события щелчка мыши можно легко создать с помощью двойного щелчка по расположенной на форме кнопки (или выбрать событие OnClick для данной кнопки в Инспекторе Объектов). Обработчик события для кнопки с именем Button1, расположенной на форме с именем Form1, будет выглядеть так:

Вы можете поместить ваш код между операторами begin и end, который будет вызываться при нажатии кнопки Button1.

Практически все доступные руководства для начинающих используют компонент TButton в качестве введения в Объектно-ориентированное программирование в среде Lazarus. Следующие руководства хорошо подходят для новичков, чтобы понять как использовать кнопки:

    для новичков руководство по Lazarus на Free Pascal и Lazarus

Contents

Простой пример

  • Создайте новое приложение и разместите элемент управления TButton на форме.
  • Дважды щелкните по кнопке с именем Button1, расположенной на форме (по умолчанию создастся обработчик события OnClick для кнопки с именем Button1 и откроется редактор кода).
  • Добавьте следующий код в обработчик события:
  • Запустите программу (нажав клавишу <F9>).

Щелчок правой кнопкой мыши

Каждый элемент управления TButton имеет необязательное свойство PopupMenu, через которое можно связать элемент управления TPopupMenu с кнопкой, в результате чего всякий раз, когда вы щелкните правой кнопкой мыши по кнопке будет отображаться всплывающее меню.

Динамически создаваемая кнопка

Иногда, вместо создания кнопок (или других компонентов) в режиме разработки в Lazarus с помощью дизайнера форм легче создавать их динамически в режиме выполнения программы. Данный подход особенно полезен, если у вас есть часто повторяющиеся кнопки на форме.

Этого можно достичь, как показано в следующем примере (простой калькулятор):

  • Создайте новое пустоеграфическое приложение с формой Form1 и добавьте StdCtrls в раздел Uses.
  • Измените заголовок формы с Form1 на QuickAdd.
  • Создайте для формы Form1 обработчик события OnCreate (перейдите в Инспектор Объектов и в событии OnCreate щелкните кнопку [. ]).
  • Добавьте следующий код:
  • Теперь вы должны создать обработчик события для щелчков мыши.
  • Добавьте класс TForm1 в секцию private в редакторе кода.
  • Добавьте procedure aButtonClick(Sender: TObject); и нажмите клавиши [CTRL] + [Shift] + [c] (опция завершения кода станет активной и создастся процедура TForm1.aButtonClick(Sender: TObject); .
  • Вставьте следующий код:
  • Запустите приложение.

Примечание: You can assign every imaginable event handlers to your buttons, as long as this the form procedure <class>.<name of procedure>(Sender: TObject); has. Thus, you can use one from another class!

Как сделать кнопку в паскаль

procedure TForm1.Button1Click (Sender: TObject);

var s, t, v: real; begin

s = StrToFloat (Edit1.text) t = StrToFloat (Edit2.text) v = s / t;

image

  1. Записать процедуры, содержащиеся в кнопках 1 и 2. В результате нажатия кнопки 1 ее ширина уменьшается на 6 пикселей за счет увеличения кнопок 2 и 3, а в результате нажатия кнопки 2 все происходит наоборот. нажатием кнопки 3 форма закрывается. image
  2. Записать процедуры, содержащиеся в кнопках 1 и 2. В результате нажатия кнопки 1 она становится шире и выше на 5 пикселей за счет кнопок 2 и 3. Если нажать кнопку 2, все происходит наоборот. нажатием кнопки 3 форма закрывается. image
  3. Записать процедуры, содержащиеся в кнопках 1 и 2. В результате нажатия кнопки 1 она становится шире на 5 пикселей за счет кнопки 3, одновременно увеличивается и кнопка 2. Если нажать кнопку 2, все происходит наоборот. нажатием кнопки 3 форма закрывается. image
  4. Записать процедуры, содержащиеся в кнопках 1 и 2. В результате нажатия кнопки 1 она вместе с кнопкой 2 перемещается в правую часть формы, а кнопка 3 — в левую. Если нажать кнопку 2, все три кнопки возвращаются обратно. Считать, что по ширине кнопки 1 и 3 занимают всю форму (между ними нет просвета). нажатием кнопки 3 форма закрывается. image
  5. Записать процедуры, содержащиеся в кнопках 2 и 3. В результате нажатия кнопки 2 она меняется, как это показано на рисунке. Кнопка 3 занимает место кнопки 2. Если нажать кнопку 3, это перемещение происходит в обратном порядке. нажатием кнопки 1 форма закрывается.

image

  1. Создать проект, «Свойства формы».В этом проекте мы рассмотреть свойства формы. Для этого на форму установить кнопки (компонент Button) и дать им названия: уменьшить форму, растянуть форму, спрятать кнопки, показать кнопки, а также создать две кнопки для задания цвета формы и форма на весь экран, свернуть окно, закрыть окно.
    1. Создать форму и разместить компоненты на форме;
    2. Задать свойства компонентов:
      1. Форме дать название «Работа с кнопками»
      2. предоставляем названия кнопкам Button
      3. Расположите кнопки на форме лучше и задайте им нужные свойства.

      Form1.Height = Form1.Height-100; Form1.Width = Form1.Width-50; end;

      procedure TForm1.Button2Click (Sender: TObject); begin

      Form1.Height = Form1.Height + 200; Form1.Width = Form1.Width + 100; end;

      procedure TForm1.Button3Click (Sender: TObject); begin

      Button1.Visible = False; Button2.Visible = False; Button3.Visible = False; Button4.Visible = False; Button5.Visible = False; end;

      procedure TForm1.Button6Click (Sender: TObject); begin

      Button1.Visible = True; Button2.Visible = True; Button3.Visible = True; Button4.Visible = True; Button5.Visible = True; end;

      Midlet Pascal. Изображения и кнопки

      Всем привет! Продолжаем изучать Midlet Pascal. В прошлой статье я рассказал о самых основах этого языка. В этой статье погорим о вещах более интересных — немного порисуем, рассмотрим вывод изображений и обработку нажатий пользователя на кнопки.

      Стандартные фигуры изображать в Midlet Pascal очень даже просто. Вот, например, нарисуем синий прямоугольник 100х100 и в нем белым текстом напишем что-нибудь. Делается это так. За цвет отвечает процедура SetColor, где в скобках указываются три цвета, из которых получится тот, который нам нужен. Цвета указываются в таком порядке: красный, зеленый, синий. Значение каждого из них может быть от 0 до 255. Например, если написать так:

      то мы получим ярко-зеленый цвет, а если так:

      Поехали дальше. Прямоугольник мы возьмем закрашенный — для это есть процедура FillRect, где в скобках пишутся координаты левого верхнего угла это прямоугольника, ширина и высота. В итоге получаем что-то вроде этого:

      Прямоугольники с линиями — это, конечно, хорошо, но явно недостаточно, чтобы сделать хорошую игрушку. Неплохо было бы показать какую-нибудь красивую картинку, чем мы сейчас и займемся. С картинками в Midlet Pascal дело обстоит неважно, поддерживается только формат PNG. Поэтому все изображения, которые Вы хотите вывести на экран нужно переводить именно в этот формат. Для конвертирования изображений есть много программ и я не буду на этом останавливаться. Скажу лишь, что лично мне ближе Photoshop. Там можно и картинку отредактировать и сохранить ее как нужно. Ну так вот. Нашли Вы хорошую картинку, теперь самое время добавить ее к нашей программе. Для этого в меню выбираем «Project -> Import resource file», находим нашу картинку и добавляем ее. Она должна появиться в списке файлов слева (вкладка «Files»). Если у Вас нет такой вкладки, ее можно включить через «View -> Files». Допустим Ваша картинка называется «picture.png». Теперь в программе пишем:

      Означает это примерно следующее. LoadImage загружает картинку из ресурсного файла (символ «/» перед названием писать обязательно, иначе ничего не выйдет). DrawImage выводит загруженную картинку на экран в точку с координатами (10, 10). Можно (а иногда даже и нужно) сделать немного по-другому. Сначала загрузить изображение в какую-нибудь переменную (которая в этом случае будет иметь тип image), а потом уже действовать через эту переменную. Т.е. примерно так:

      Для чего это нужно? Дело в том, что последний вариант работает гораздо быстрее. Это, в принципе, не имеет значения, если Вам нужно вывести одно-два небольших изображения, а вот если этих изображений несколько десятков и пишете Вы очень динамичную игру — тогда лучше делать через переменные. Да и с переменными удобнее работать, особенно если оформить это дело в массив.

      Ну что ж — с картинками более-менее разобрались (хотя настоятельно советую поэксперементировать самостоятельно — я рассказал только основы, а еще есть много чего интересного по этой теме). Допустим Вы нарисовали замечательную картинку (например, главного героя игры), изобразили ее на экране и все вроде бы хорошо. Но чего-то не хватает. А не хватает движений. Пользователь будет упорно жать на все кнопки подряд, но ничего не случится.

      Герой игры не сдвинется с места. А все потому, что нужно было еще запрограммировать и обработку нажатий на клавиши. Ну что ж, займемся этим. Здесь все очень просто. Поэтому объясню вкраце. Есть две основных функции: GetKeyClicked и GetKeyPressed, которые возвращают код нажатой клавиши. Разница между ними лишь в том, что первая возвращает последнюю нажатую клавишу, а вторая — клавишу, нажатую в данных момент. Разные телефоны (и устройства вообще) могут возвратить для одной и той же клавиши разные коды и тогда программа, которая прекрасно работала на одном телефоне, совершенно откажется работать на другом. Эту проблему решает функция KeyToAction, которая сама определяет, какая клавиша была нажата и выдает ее значение в виде константы. Например, если был нажат джойстик вверх, то значение будет GA_UP, если вправо, то — GA_RIGHT. А теперь поясню все вышесказанное на практике:

      Этот пример был взят из помощи по Midlet Pascal. Данный цикл (а значит и программа в данном случае) будет работать до тех пор, пока не будет нажат центр джойстика. Подробнее про константы читайте в справке.

      Ну что же. Вы узнали немного о выводе изображений и обработке нажатий на клавиши. А теперь я хочу показать, как все это применить на практике. Напишем небольшую игрушку, применяя сказанное выше. По правде говоря, это даже и не игрушка пока, а лишь заготовка под нее, но для примера вполне сойдет. Мы будем управлять летающей тарелкой. Для этого надо нарисовать картинку самой тарелки и фон космоса, где, собсвенно и будет происходить действие. Далее приведу просто текст программы. Здесь полно комментариев и, я думаю, Вы разберетесь здесь без проблем.

      Эта программа полностью рабочая, но сделана довольно упрощенно. Вы можете попробовать сделать ее лучше. Картинки я прикладывать не стал, ибо художник из меня неважный.

      Ну вот и все на сегодня. В следующий раз мы добавим к нашей игре музыкальное сопроводжение.

      Читать:
      Как понять сколько полных лет

Похожие статьи