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

Обновлено: 05.07.2024

После установки интегрированной среды разработки Lazarus, как было описано в предыдущей теме, мы можем приступить к разработке программ на языке Free Pascal. Итак, напишем первую простую программу.

Запустите программу для разработки Лазарус. Не пугайтесь большого количества окон после загрузки приложения.

Консольное приложение

Для создания первой программы, необходимо выбрать в меню Файл –> Создать. В открывшемся окне выбираем папку Проект, а в ней Простая программа

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

Запустить выполнение программы можно тремя способами:

  • кликнув на панели кнопку Запустить
  • выбрать пункт меню Запуск –>Запустить
  • нажать на клавиатуре клавишу F9

После запуска программы на выполнение, мы увидим окно консоли, которое сразу же закрывается. Есть несколько вариантов решения данной проблемы.

Программа будет ждать нажатия клавиши Enter

Программа ждет нажатия любой клавиши

Проблему исчезновения окна решили. Теперь после запуска мы сможем увидеть результат.

Если в программе вы используете русские буквы, а они не правильно отображаются в консоли, добавте в самое начало программы строку .
Смена кодировки на Unicode должна решить проблему вывода кирилических символов на экран.

Оконное приложение

Многих начинающих программистов пугают консольные приложения, а Windows формы кажутся слишком сложными. Но это не так.

Откроем пункт меню Файл –> Создать, выбираем Проект, а в нем Приложение

После этого откроется редактор Форм.

Урок №2 (Обработка событий, убегающая кнопка)

В этом уроке я постараюсь объяснить как создается обработка событий. Начнем с того что я поясню что такое событие. Событие (английское event ) - это как вы наверное догадались это такая ситуация, когда что-то происходит. Вот например вы нажали кнопку, и вот тут-то и происходит обработка этого события. В первом уроке как раз была обрабытка события нажатия на кнопку, я специально не стал вдаваться в подробности. Тем более сразу все запомнить невозможно.

Так вот, при определенных действиях пользователя ваше приложение вызывает определенные подпрограммы. Событий этих очень много, так что все мы рассматривать не будем, а рассмотрим в качестве примера простой пример.


Для этого откроем Delphi с новым проектом. Уменьшим размеры главной формы. Предлагаю сделать следующие установки. Для этого в свойствах формы установим ее размеры ширина ( Width ) и высота ( Height) )присвоим значение 300, этого вполне достаточно. У нас получилось квадратное окно. В нем мы разместим кнопку. Свойство надпись ( Caption ) предлагаю поменять на "выход". Еще вы освоите команду закрытия приложения. Вы можете так же поменять заголовок формы на такой какой хотите, что бы не портить вид нашего приложения. И у вас должно получится примерно то же самое, что у меня на картинке слева.

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

Теперь необходимо еще раз создать обработчик событий для события OnClick , надеюсь Вы еще помните как это делается. В появившемся тексте подпрограммы :

. . .
procedure TForm1.Button1Click(Sender: TObject);
begin

Между операторами begin и end записываем команду Close;

После этого давайте добавим еще один обработчик события. На этот раз это будет OnMouseMove это события возникает при движении мышки над кнопкой, причем кроме просто вызова подпрограммы этого события туда передаются еще и координаты мышки относительно левого верхнего края кнопки. Создав обработчик события допишите в него следующий программный код. Чуть позже я объясню что оно означает.

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if abs(Y - Button1.Height div 2) if , о нем можно прочитать в словаре, к нему же относится else . Так же применяются свойства кнопок, а именно Button1.Width определение ширины кнопки1, и Button1.Height - определение ее высоты. Оператор div служит для деления. Координаты X и Y - это координаты мышки которые передаются в программу. abs - функция вычисляющая модуль

В циклах происходят не сложные математические вычисления, которые с первого взгляда выглядят очень страшновато. Но поняв что делает каждая функция можно без труда разобраться. В данном примере я специально применял чтение свойств кнопки (Button1.Top , Button1.Left , Button1.Height , Button1.Width) что бы сделать программу более универсальной. Можно было вместо них ввести и точные значения. Это выглядело бы очень хорошо вот сравните :

Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском . и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор. Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса). [!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя



Как сделать кнопку в граф. режиме, при нажатии на которую выполняется определённое действие (мышь в граф. режиме есть).



andriano, откуда брать класс? Мы не в разделе Дельфи.

Vesper, а посмотреть справку к CreateWindow? Между прочим, первый параметр - "pointer to registered class name".
ОС автором топика указана не была, так что Windows подходит, - имеется и графический режим, и мышь в нем.



andriano, ага. под винды будет работать. Правда обычно "графический режим" означает программу под ДОС с переходом в графику, и там это всё надо реализовывать самому. Ладно, ждем тогда автора.



Vesper спасибо, сам смысл реализации кнопки понял (я почему то думал, что существует отдельная процедурав паскале, которая делает кнопку), но чет не работает, вот часть кода:

Анатолий, ты всегда одно и тоже пишешь) "могу помочь, но потом") Сначала почитаю, разберусь, а потом помогу))

Андрей Акимов

Андрей Акимов

Илья Кирилюк


Илья Кирилюк ответил Андрею

Андрей, Зачем модуль?
В обычном ABC есть модуль VCL
В PascalABCNET Есть модуль Forms или возможность использования библиотеки System.Windows.Forms.dll
И в обоих есть редактор форм, для создания кнопок.

Андрей Акимов

Илья Кирилюк


Илья Кирилюк ответил Андрею

Андрей, Хм. А не подскажешь какая основа у GraphABC ? В модуле прописан графический элемент управления и при инициализации модуля происходит создание формы и помещение на него этого элемента. А этот самый элемент можно изменять, а на форму кидать кнопки и другое)

Читайте также: