Delphi на чем писать

Delphi на чем писать

Автор:

Первая программа конечно будет очень простой! Для начала выложим на форму простую кнопку. Для этого в панели инструмментов ищем на вкладке Standard компонент Button и щелкаем по нему левой кнопкой мыши. Далее щелкаем той же кнопкой в нужном месте на форме.

Итак, компонент разместили. Теперь рассмотрим его основные свойства. Если кнопка не выделена, то ее необходимо выделить чтобы инспекторе объектов отображались именно ее свойства.

Name — название компонента;
Caption — текст, отображаемый на кнопке;
Left — позиция по горизонтали;
Width — ширина кнопки в пикселях;
Height — высота кнопки в пикселях;
Cursor — курсор, который будет отображаться при наведении на кнопку;
Hint — текст подсказки, которая появится при наведении и задерживании указателя мыщи над кнопкой;
ShowHint — будет ли отображаться подсказка. True — будет отображаться, False — не будет;
TabStop — Определяет возможность доступа пользователя к кнопке с помощью клавиши Tab.

В надписях кнопок (свойство Caption) можно предусматривать использование клавиш ускоренного доступа, выделяя для этого один из символов надписи — ставя перед ним символ амперсанта "&". Этот символ не появляется в надписи, а следующий за ним символ оказывается подчеркнутым. Тогда пользователь может вместо щелчка на кнопке нажать в любой момент клавишу Alt совместно с клавишей выделенного символа.

Основное событие кнопки — OnClick, возникающее при щелчке на ней. В обработчике этого события записываются операторы, которые должны выполняться при щелчке пользователя на кнопке.

Свойство Cancel, если его установить в true, определяет, что нажатие пользователем клавиши Esc будет эквивалентно нажатию на данную кнопку. Это свойство целесообразно задавать равным true для кнопок Отменить в различных диалоговых окнах, чтобы можно было выйти из диалога, нажав на эту кнопку или нажав клавишу Esc.

Свойство Default, если его установить в true, определяет, что нажатие пользователем клавиши ввода Enter будет эквивалентно нажатию на данную кнопку, даже если данная кнопка в этот момент не находится в фокусе. Правда, если в момент нажатия Enter в фокусе находится другая кнопка, то все-таки сработает именно кнопка в фокусе.

Вот и все основные свойства. Теперь рассмотрим события. Для этого перейдем на вкладку Events.

onClick — код который будет выполняться при нажатии кнопки (обратите внимание что нажать кнопку можно не только мышкой, но и клавишей Enter);
onMouseDown — код который выполнится при нажатии любой кнопки мыши на кнопке, причем не нужно кнопку отпускать;
onMouseUp — код который выполнится при отпускании любой кнопки мыши;
onMouseMove — код который выполнится при вождении мышкой по кнопке.

Обратите внимание что некоторые свойства и события у разных компонентов совпадают.

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

То же самое можно было бы сделать, перейдя на вкладку Events и щелкнув два раза по пустому полю справа от onClick.

Пишем между Begin и End следующую строку:

Написанной строчкой мы вызвали процедуру Close у формы, которая закрывает ее. А Form1 — это свойство Name нашей формы.

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

Ну теперь можно попробовать запустить нашу программу, для этого жмем кнопку F9 или на кнопку рядом с панелью инструментов.

Если Вы все сделали правильно то программа должна запуститься. А при нажатии на кнопку "Выход" программа закрывается.

Теперь нужно сохранить результаты, для этого нажимаем кнопку Save All . Желательно сохранять каждый проект в отдельную папку, т.к. проект содержит много файлов. В появившемся окне вводим имя модуля (я не буду менять имя) и жмем кнопку сохранить. Следом появляется еще одно окно, т.к. нажата была кнопка сохранить все. Снова жмем кнопку сохранить. Только что сохраненный файл нужно будет запускать для загрузки нашего проекта, чтобы продолжить работу. А файл который был сохранен первым и есть тот модуль где содержится исходный код нашей программы.

Теперь если снова откомпилировать программу — Ctrl+F9 (др. словами проверить на ошибки) или запустить — F9, то рядом с исходниками появится EXE файл — это и есть написанная программа. Этот файл можно будет перенести на другой компьютер без исходников — вся необходимая информация хранится в нем.

Терерь вернемся в Delphi и перейдем в окно редактора кода. Там написанно следующее:

Разберемся с основными блоками кода:

unit Unit1 — указание названия модуля;
interface — секция интерфейса. В ней объявляются процедуры и функции, описываются типы, классы и глобальные переменные;
uses — секция модулей, в ней указываются те модули которые используются в программе;
var — зарезервированное слово, означающее что за ним будут идти объявления переменных. В данном месте кода это глобальные переменные;
implementation — секция определяет процедуры и функции, которые объявлены в секции интерфейса;
end. — указание окончания программы. Любой текст находящийся после этого слова не читается. End обязательно должен быть с точкой;

Пишем программу дальше

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

Теперь после нажатия на вторую кнопку первая сместится вправо на 10 пикселей. Жмем F9 и проверяем.

Почему мы написали именно так? Многие просто не понимают почему в событиях связанных с Button2 изменяет свое положение кнопка Button1. Постараюсь объяснить доступно. Чтобы обратиться к свойствам любого компонента нужно написать имя этого компонента — в данном случае это Button1. Далее через символ "." осуществляется доступ к его свойствам и методам. Для удобства работы в Delphi после ввода точки было сделанно появление меню в котором отображаются все доступные свойства и методы объекта.

Рис 1. Меню выбора свойств объекта

Через точку мы и написали свойство Left, т.е. координаты по горизонтали от левой границы родителя, в данном случае формы. Мы свойству Left присваиваем координату на 10 пикселей больше чем она сама. Свойство Left можно найти в инспекторе объектов.

Таким образом можно обратиться к любому свойству которое видно в инспекторе объектов (например поменять Caption кнопки, шинину, высоту, и т. д.)

Чтобы поменять размеры кнопки пишем следующий код:

Код можно написать там же где и изменение координат кнопки.

Урок 3 — Свойства и события у формы

Обсудить на форуме

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

Delphi — прекрасная система визуального объектно-ориентированного проектирования, одинаково радующая и новичков в программировании, и профессионалов. Начинающим Delphi позволяет сразу, с небольшими затратами времени и сил создавать прикладные программы, которые внешне неотличимы от программ, созданных профессионалами. А для опытного программиста Delphi открывает неограниченные возможности для создания сколь угодно сложных программ любого типа, в том числе, распределённых приложений, работающих с любыми базами данных.

Более подробно о том, что такое Delphi и почему её стоит изучать, можно прочесть на специальной страничке и этом переводе статьи "Why Delphi? (Delphi For Beginners)" :

Эта статья о Delphi имеет цель объяснить, что такое Delphi и что он может сделать для вас.

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

Borland Delphi представляет собой средство разработки приложений для Microsoft Windows. Delphi является мощным и простым в использовании инструментом для создания автономных программ, обладающих графическим интерфейсом (GUI) , или 32-битных консольных приложений (программ, которые не имеют графического интерфейса).

В сочетании с Borland Kylix, программисты Delphi могут создавать из одного исходного текста приложения и для Windows и для Linux, и это открывает новые возможности и увеличивает потенциальную отдачу от усилий, вложенных в изучение Delphi. В Delphi используется кросс-платформенная библиотека компонентов CLX и визуальные дизайнеры для создания высокопроизводительных приложений для Windows, которые повторной компиляцей можно легко превратить в приложения для Linux.

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

При создании графического интерфейса приложений Delphi, у вас все возможности языка программирования Object Pascal, "завернутого" в среду RAD . Такие компоненты окна графического пользовательского интерфейса, как формы, кнопки и списки объектов, включены в состав Delphi. Это означает, что вам не нужно писать никакого кода при добавлении их в ваше приложение. Вы просто "кладёте" их на вашу Форму, как в графическом редакторе. Вы можете также добавить на Форму элементы управления ActiveX, для создания в считанные минуты специализированных программ таких, например, как веб-браузеры. Delphi позволяет разработчикам дизайна внедрять в интерфейс новые элементы и кодировать их события одним щелчком мыши.

Читайте также:  Asus p8h61 m le lga 1155

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

Паскаль

Лучшим способом представить что такое Delphi является Object Pascal на основе визуальной среды разработки. Delphi основан на Object Pascal, языке, аналогичном объектно-ориентированному C++, а в некоторых случаях даже лучше. Для разработчиков не имеющих опыта работы в Паскале, Delphi имеет шаблоны своих структур на Паскале, что ускоряет процесс изучения языка.

Компилятор Delphi упаковывает приложения в компактные исполняемые файлы, причем нет необходимости в громоздких библиотеках DLL — большое удобство, я должен сказать.

Библиотека Visual Component Library (автономные бинарные части программного обеспечения, которые выполняют некоторые конкретные предопределенные функции), или VCL, Delphi является объектно-ориентированной базой. В этой богатой библиотеке вы найдете классы для таких визуальных объектов Windows как окна, кнопки и т.д., а также классы для пользовательских элементов управления таких как таймер и мультимедийный плеер, наряду с невизуальными объектами, такими как список строк, таблицы базы данных, потоки и т.д.

Базы данных

Delphi может получать доступ ко многим типам баз данных. Используя BDE (Borland Database Engine — механизм доступа к базам данных), формы и отчеты, которые вы создаете, получают доступ к локальным базам данных, таким как Paradox и DBase, сетевых баз данных SQL Server, InterBase, также как и SysBase, и любые источники данных, доступные даже через ODBC (открытая связь с базами данных).

Итак, Delphi — прекрасная среда разработки Windows- и Linux-программ любого типа. Поэтому единственное, что вас должно уже сейчас интересовать —

Итак, запустим Delphi. Перед нами четыре окошка. Вверху во вcю ширину экрана окно управления проектом и средой разработки — главное окно Delphi. При его сворачивании сворачиваются и все остальные. Слева — инспектор объектов. В нём задаются свойства составляющих нашу программу компонентов. И наконец, в центре одно над другим два окна, окно формы будущей программы и окно программной начинки.

В пустой форме смысла нет. Наполнить её содержанием помогут компоненты Delphi. Они располагаются на главном окне, на нескольких вкладках. Все основные компоненты находятся на первых четырёх вкладках: Standard, Additional, Win32 и System. Их названия всплывают в виде подсказок при наведении мышки на пиктограммы.

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

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

При создании любой серьёзной программы не обойтись без дополнительных, более сложных, чем числа и строки, типов данных. В Delphi программист может для своих целей конструировать собственные типы данных. Чтобы ввести в программу (описать) новый тип данных, применяется оператор с ключевым словом type.

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

Начало. Работа с файлами важная вещь в любом языке программирования. Для начала нужно упомянуть компоненты, которые умеют работать с файлами, считывать и сохранять своё содержимое, строки типа String, в файл текстового формата. Это компоненты ListBox, ComboBox и Memo, расположенные на первой же вкладке палитры компонентов.
Продолжение. В Delphi реализовано несколько способов прямой работы с файлами. Познакомимся с классическим способом, связанным с использованием файловых переменных. Прежде всего файл должен быть открыт.
Окончание. То, что мы узнали в предыдущей части урока, позволяет работать с файлами по адресу, жёстко записанному в тексте программы. Мы же хотим просматривать любые файлы по нашему выбору. В Delphi есть компоненты, позволяющие в работающей программе осуществлять выбор файлов.
Поиск файлов в Delphi производится в три этапа. На первом этапе функция FindFirst находит первый файл, удовлетворяющий критериям отбора. На втором этапе функция FindNext в цикле поочерёдно находит остальные файлы. На третьем этапе функция FindClose освобождает память, выделенную для осуществления поиска.
Задачка. Теперь, пользуясь всем вышеизложенным материалом, можно ответить, например, на вопрос: "как средствами Delphi определить размер файла". Есть несколько альтернативных способов, как подсчитать размер файла с помощью Delphi.
Список подпрограмм используемых при работе с файлами в Delphi. Содержит функции и процедуры создания, поиска, преобразования и удаления папок и файлов.

Редкая программа обходится одной формой. Delphi позволяет с лёгкостью создавать дополнительные формы, предоставляющие возможность, например, вести диалог с пользователем, принимать и выводить любую необходимую информацию.

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

Исключительные ситуации в Delphi встречаются постоянно. Исключительная ситуация это такая ситуация, в результате которой генерируется ошибка, и выполнение программы прерывается. Например, деление на ноль — классический пример исключительной ситуации. Для контроля исключительных ситуаций ввода-вывода также могут применяться директивы компилятора <$I>.

Применение компонентов Delphi позволяет избежать рутинного ручного кодирования. Компоненты Delphi охватывают практически все аспекты применения современных информационных технологий. Конечно, для работы в Delphi прежде всего требуется изучить базовые компоненты Delphi, которые требуются при подготовке практически любого приложения.
Страница Standart
Изучение Delphi естественным образом начинается со страницы палитры компонентов Standart. На этой странице расположены стандартные для Windows интерфейсные элементы, такие как главное и всплывающее меню, кнопка, однострочный и многострочный редакторы, переключатели, метки, списки, и некоторые другие компоненты, которые применяются наиболее часто. Рассматривается пример на переопределение символов , вводимых в компонент Edit, что может использоваться в формах для ввода пароля.
Страница Additional
На страницу палитры компонентов Additional помещены дополнительные компоненты, без некоторых из которых сегодня трудно представить программу для Windows: кнопки с дополнительными свойствами, таблицы , компоненты для размещения изображений и многие другие.
Страница Win32
Страница палитры компонентов Win32 содержит компоненты, представляющие собой интерфейсные элементы для 32-разрядных операционных систем Windows 95/98/NT (В версии системы Delphi 2 эта страница называлась Win95). Использующие эти компоненты программы выглядят в стилистике последних версий операционных систем Windows.
Страница System
На странице палитры компонентов System представлены компоненты, которые имеют различное функциональное назначение (например, Timer — очень важный в любой программе компонент), в том числе компоненты, поддерживающие стандартные для Windows технологии межпрограммного обмена данными OLE и DDE.

Работа со строками Delphi позволяет извлечь из строки необходимую информацию и представить её в нужном виде. Delphi предоставляет весь спектр необходимых функций для работы со строками и преобразования строк Delphi в необходимые форматы.
Продолжение. Использование списка строк. Список строк Delphi TStringList — это структура данных, напоминающая компонент ListBox, но не визуальная, а просто хранящая в памяти и имеющая свойства и методы для работы со строками типа TString.

Создание интерфейса пользователя сводится к выбору из палитры компонентов необходимых для работы программы компонентов Delphi, служащих интерфейсом управления, а также интерфейсом отображения информации, и перенесению их на Форму с последующей компоновкой.

Работа с графикой в Delphi это не только линии и рисунки, но также и и печать текстовых документов. Поэтому в Delphi работе с графикой нужно уделить немного времени. Работа с графикой в Delphi предполагает знакомство с канвой (Canvas) компонентов. Канва это тот холст, который умеет управлять состоянием каждого своего пиксела, и это свойство позволяет программисту отобразить то, что требуется.

Потоки в Delphi выполняют функцию имитации псевдопараллельной работы приложения. Как известно, для организации многозадачности операционная система выделяет каждому приложению, выполняющемуся в настоящий момент, определённые кванты времени, длина и количество которых определяется его приоритетом. Поэтому объём работы, который приложение может выполнить, определяется тем, сколько таких квантов оно сможет получить в единицу времени.

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

Читайте также:  Php header json content type

Новые Уроки Delphi будут появляться с течением времени. Кроме того, будут корректироваться уже готовые уроки с целью избавиться от всегда возможных неточностей и ошибок. Как говорится:

Виктор Карпинский, Владимир Молочков (В. Новгород)

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

Шуточная программа «Чувствительная кнопка»

Что значит «чувствительная»? Кнопка будет как-то реагировать на все, что мы с ней будем делать. Ну, например, если нажать на нее курсором мыши, то она будет возмущаться: «Ой! Меня нажали». А если потом отпустить, то удовлетворенно сообщит: «Уф, меня отпустили».

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

Сначала создадим и сохраним новый проект. Для этого сделайте следующее:

1. Запустите Delphi (как ее установить на своем компьютере, мы рассказали в предыдущей статье). Запустить ее можно так, как показано на рисунке.

2. После загрузки появится интерфейс Delphi (он описан в предыдущей статье). При этом стартовая форма Form1 и ее программный модуль Unit1 будут созданы автоматически. Для того чтобы сохранить ваш первый проект, воспользуйтесь меню Файл (File) > Сохранить проект как… (Save Project as…).

3. Открывается окно сохранения программного модуля Unit1. С помощью кнопки «Создание новой папки» создайте папку «Пример 1».

4. Откройте созданную папку и два раза нажмите кнопку «Сохранить». Первое нажатие кнопки сохранит файл Unit1.pas, содержащий текст программы, а второе — файл Project1.dpr, содержащий общие сведения о проекте. На самом деле сохраняется больше, чем два файла: файл Unit1.dfm содержит сведения о связанной с программным модулем Unit1 форме Form1. Файл Project1.cfg содержит параметры конфигурации проекта, а файл Project1.dof — используемые настройки системы программирования Delphi. Впрочем, начинающему программисту это знать не обязательно.

Если вам показалось, что сохранять написанную в Delphi программу сложно, можем вас успокоить: так, как описано выше, надо сохранять только один раз, при начале работы над новым проектом. Все дальнейшие изменения сохраняются очень просто — одним нажатием кнопки «Сохранить» (Save) главного окна Delphi.

Теперь мы готовы начать визуальное программирование. У нас уже есть один объект — сама форма Form1. Поменяем некоторые ее свойства с помощью инспектора объектов.

5. В инспекторе объектов (Object Inspector) найдите свойство Caption (заголовок). Щелкните против него в графе значений свойств мышью, сотрите имевшееся там слово «Form1» и впишите вместо него «Чувствительная кнопка».

Заголовок формы сразу изменится.

6. Аналогичным способом изменим размеры формы. В инспекторе объектов найдите свойство Height (высота) и замените его значение на 200, а потом значение свойства Width (ширина) — на 300. Опять-таки вы сразу увидите изменение параметров формы. Это визуальное программирование в действии.

7. Значения некоторых свойств не вводятся вручную, а выбираются из имеющегося списка. Найдите свойство Position (положение формы на экране). Когда вы щелкнете по его значению мышью, там появится кнопка выбора вариантов. Выберите poScreenCenter. Тогда ваша форма будет всегда появляться в центре экрана.

На этот раз никаких видимых изменений в положении формы не произошло. Свойство Position влияет на форму при работе программы, а не в режиме редактирования. Проверки ради вы можете нажать в главном окне Delphi кнопку «Выполнить» (Run). На этой кнопке нарисована зеленая стрелка. После ее нажатия окна просмотра списка объектов Object TreeView и инспектора объектов исчезнут, а окно созданной вами программы появится в центре экрана.

Для возвращения в режим редактирования надо закрыть программу «Чувствительная кнопка» обычным для приложений Windows способом — нажав в ее правом верхнем углу на кнопочку с крестиком. Написанная программа пока еще ничего не делает, но уже является настоящим полноценным приложением Windows. У нее появляется даже своя кнопка на панели запуска программ внизу экрана, ее можно свернуть или развернуть во весь экран.

Постарайтесь сразу завести себе привычку: прежде чем запустить программу кнопкой Run, обязательно сохраните внесенные в нее изменения, нажав кнопку Save.

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

8. Для этого наверху в главном окне Delphi в палитре компонентов стандартной (Standard) выберите компонент «Кнопка» (Button). Вставьте его на форму, просто щелкнув по ней мышкой.

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

9. Так же, как вы это делали с формой (см. пункты 5 и 6), измените заголовок (Caption) и размеры (Width и Height) кнопки. Заголовок сделайте «Здравствуйте, я — кнопка», ширину 200, высоту 40. Сохраните и запустите программу. Теперь она выглядит так:

Убедитесь, что кнопка нажимается (хотя пока еще при этом ничего не происходит, ведь мы пока еще не написали в тексте программы ни одного программного кода). Текст в окне редактора кода уже довольно велик, но весь он написан автоматически. Вот этот текст:

Листинг 1. Автоматически созданный программный код

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

В разделе uses указаны те библиотеки, которые нужны для компиляции программы. Например, библиотека StdCtrls добавилась в момент внедрения на форму кнопки, потому что именно в этой библиотеке содержатся необходимые для работы кнопки части программного кода. Раздел кода программы type описывает форму (ее класс как программного объекта TForm1) и перечисляет все объекты, размещенные на ней. Например, в момент внедрения на форму кнопки сюда добавилась строка Button1: TButton. Далее в разделе var перечисляются все глобальные для данного модуля переменные. Пока такая переменная только одна — сама форма Form1. После слова implementation будут появляться процедуры обработки событий, но об этом — чуть ниже.

Итак, кнопка у нас есть. Однако название программы обещает, что кнопка будет чувствительная. Как это сделать?

У объектов программы помимо обычных свойств (например, размеров) есть и свойства, связанные с реакцией этих объектов на какие-то события. Эти свойства называются методами, или обработчиками событий, и помещаются в окне инспектора объектов на вкладке Events.

10. Убедитесь, что на форме в режиме редактирования выбран компонент Button1. На вкладке Events окна инспектора объектов (прокрутив вписок вниз) выберите свойство OnMouseDown. Это означает «При нажатии мышью». Щелкните возле названия этого свойства мышью, чтобы место для его значения выделилось белым цветом, а потом по этому белому пустому месту сделайте двойной щелчок мышью.

В результате появится следующий текст в окне редактирования кода:

Листинг 2. Автоматически созданный шаблон процедуры Button1MouseDown

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

Такой фрагмент текста называется описанием процедуры. После ключевого слова procedure находится название (имя) процедуры. В данном случае его можно расшифровать так: на форме Form1 для объекта Button1 при возникновении события Mouse Down. Далее в круглых скобках помещены описания формальных параметров процедуры. О таких параметрах речь пойдет при изучении более сложных и интересных примеров программирования. Следующее ключевое слово begin (начало) открывает тело процедуры. Все команды, написанные между begin и end, будут выполнены при наступлении указанного события (в данном случае при нажатии мышью). Описание процедуры, у которого между begin и end ничего нет, называется заглушкой процедуры. Ту часть кода, которую программист вписал вручную, можно вручную стереть или изменить. Однако автоматически появившуюся часть кода удалять или изменять не следует. Если появилась ненужная заглушка процедуры (например, случайно сделали двойной щелчок мышью по объекту), то ее не надо удалять самому. Пустые, не измененные программистом заглушки автоматически исчезают при сохранении программы.

Щелкните мышью по тексту так, чтобы между словами begin и end появился текстовый курсор (мигающая вертикальная черточка). Принято все, что мы добавляем между begin и end писать с некоторым отступом, то есть не прямо от левого края, а немного правее. Впишите туда команду, означающую, что значение свойства Caption объекта Button1 надо заменить на «Ой! Меня нажали». Вот как это должно выглядеть:

Листинг 3. Работающий текст процедуры Button1MouseDown для программы «Чувствительная кнопка»

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

Button1.Caption := «Ой! Меня нажали»;

Обратите внимание на две особенности языка Паскаль. Во-первых, название свойства и объекта пишутся в обратном порядке: мы говорим «свойство Caption объекта Button1», а пишем «Button1.Caption». Перед точкой стоит имя объекта, а после точки имя свойства. Во-вторых, вместо кавычек в языке Паскаль для текстов используются апострофы. Это то же, что кавычки, но одинарные (‘). Апострофы, как и кавычки, используются парами: один перед текстом, а второй после него. Внутри пары апострофов можно писать что угодно, в том числе и русскими буквами.

Читайте также:  Java net sockettimeoutexception connect timed out

12. Сохраните и запустите программу. Убедитесь, что на нажатие кнопка уже реагирует, а на отпускание пока нет.

Домашнее задание

Хоть мы и не в школе, однако, как говорили древние, «практика — учительница жизни».

  • Найдите в окне инспектора объектов обработчик события «Мышь отпущена» (OnMouseUp) и заставьте Delphi создать шаблон соответствующей процедуры.
  • Аналогично выполненному выше пункту 11 напишите между begin и end команду, меняющую заголовок кнопки на текст «Уф, меня отпустили».
  • Сохраните, запустите программу и убедитесь, что кнопка «чувствует» не только нажатия мышью, но и отпускание.

Программа «Вычисления по формуле»

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

Напишем несложную программу, автоматизирующую такие вычисления, например, для вычисления объема конуса. Из геометрии известно, что, если конус имеет высоту h и радиус основания R, то его объем вычисляется по формуле:

Значит, наша программа должна дать пользователю возможность ввести два числа (высоту и радиус основания), а после нажатия кнопки — сообщить объем конуса. Выполним разработку этой программы в следующем порядке:

1. Если вы продолжаете работу с Delphi, то закройте старый проект (меню Файл (File) > Закрыть все (Close all)), а потом создайте новый (меню Файл (File) > Создать новый (New) > Приложение (Applicatoin)). Сохраните новый проект в папке «Пример 2» (как это сделать — описано в начале примера 1).

2. Внедрите на форму следующие компоненты. Три объекта типа надпись (Label), два поля ввода (Edit) и кнопку (Button). Они все имеются в палитре стандартной (Standard) главного окна Delphi. Указанные шесть компонентов разместите на форме примерно так, как показано на рисунке.

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

3. Измените размеры и заголовки формы и других объектов, а также свойство Text объектов Edit1 и Edit2 так, чтобы получился следующий интерфейс

4. Для кнопки Button1 создайте обработчик события OnClick (если по ней щелкнули мышью). Напишите перед begin и между begin и end несколько строк так, чтобы в результате получилось следующее:

Листинг 4. Работающий текст процедуры Button1Click для вычисления по формуле

procedure TForm1.Button1Click(Sender: TObject);

h := StrToFloat ( Edit1.Text );

R := StrToFloat ( Edit2.Text );

V := h * pi * R*R / 3;

Label3.Caption := «Объем конуса V=» + FloatToStr ( V );

Что мы написали? Во-первых, мы указали, что процедура будет работать с числовыми величинами, обозначенными h, R и V. Далее мы написали, что значение переменной h берется из свойства Text объекта Edit1 (помните, что обозначение Edit1.Text читается справа налево?). Аналогично мы взяли значение для переменной R из объекта Edit2.

После этого стоит команда вычисления значения переменной V. Как вы видите, это та самая формула объема конуса, которую мы знаем из геометрии, только написанная в одну строку. В ней написано: h умножить на пи, потом умножить на квадрат R, а потом поделить на 3. Умножение обозначается звездочкой (обратите внимание: в программировании, в отличие от обычной математики, нельзя не ставить знак умножения).

Последняя написанная строка изменяет заголовок (Caption) объекта Label3 (третьей надписи). В этот заголовок помещается пояснительный текст «Объем конуса V=», к которому сзади добавлено значение переменной V.

В программе используется функция StrToFloat, превращающая строку текста (написанное цифрами число) в вещественное число (то есть в число, у которого может быть дробная часть). Это нужно потому, что свойство Text объектов Edit, равно как и свойство Caption любых объектов — строковое (String). А для вычисления нужны числовые значения (слова real в разделе var и Float в названии функции StrToFloat означают вещественное число). Таким образом, название функции StrToFloat означает: преобразовать значение из текстового формата (String) в числовой (Float) формат. Обратное действие — функция FloatToStr. Для целочисленных величин, описанных в разделе var как integer, есть функции StrToInt и IntToStr.

5. Сохраните и запустите программу. Убедитесь, что после нажатия кнопки (при h=15,25 и R=8,4) получается объем конуса V=1126,82645298959. Вводите (только правильно, не используя букв и прочих невозможных в записи числа символов) новые значения h и R и, нажимая кнопку, получайте новый ответ.

Домашнее задание

  • Напишите в Delphi программу, вычисляющую объем параллелепипеда со сторонами A, B и C (его объем есть произведение этих трех чисел).
  • Напишите в Delphi программу, вычисляющую заработную плату и подоходный налог работника, отработавшего N часов при почасовой ставке S. Его заработная плата Z=N*S, а подоходный налог (13%) составляет P=13/100*Z.

Неизменяемый «Read Me»

Компьютер может не только вычислять, но и работать с текстами. Самый простой пример программы, работающей с текстами, — это программа ReadMe, что значит «Прочти меня». Обычно такой файл есть на диске, с которого устанавливается на компьютер какая-нибудь новая игра или полезная программа. В файле ReadMe содержатся все необходимые пояснения, например, как именно установить программу.

Часто сам ReadMe представляет собой обычный текстовый файл, который открывается с помощью какого-нибудь текстового редактора, например, «Блокнота» Windows. Но это не всегда удобно: текстовый редактор позволяет не только читать текст, но и редактировать, то есть изменять его. И может получиться, что кто-то нечаянно или по злому умыслу изменит содержащиеся в ReadMe сведения. Поэтому может оказаться удобной программа вроде той, которую мы сейчас напишем.

Ну, а использовать ее вы сможете и в качестве прикола. Например, можно написать кому-нибудь в таком виде электронное письмо или оставить на рабочем столе файл с названием «Прочитать в случае аварии», а внутри содержащий текст: «Зачем же ты читаешь этот файл? Ведь аварии никакой нет! Что за невоспитанность?». Интересная особенность таких текстов в том, что только тот, кто написал программу, может изменить появляющийся текст, а тот, кто читает, — не может.

Итак, напишем программу ReadMe, выполняя по порядку следующие шаги:

1. Создайте новый проект Delphi (меню Файл (File)4Создать новый (New)4Приложение (Applicatoin)). Сохраните его в папке «Пример 3».

2. Разместите на форме компонент Memo.

3. Измените заголовок формы и ее размеры примерно так, как показано на рисунке (не забудьте свойству Position придать значение poScreenCenter).

4. Теперь мы сделаем так, чтобы объект Memo1 всегда охватывал собою всю форму. Для этого в инспекторе объектов измените его свойство Align (что значит «выравнивание») на alClient. Результат будет такой, как показано на следующем рисунке.

5. Теперь в инспекторе объектов (по-прежнему для компонента Memo1) найдите свойство Lines (что значит «строки»). Оно имеет тип TStrings. Когда вы его выделите, справа от слова TStrings появится кнопочка с троеточием.

6. Нажмите эту кнопочку, и откроется встроенный текстовый редактор. Сотрите имеющийся в нем текст «Memo1» и напишите все, что сочтете нужным. Вас не должно смущать, что текст, который вы пишете, образует длинную строчку, длиннее, чем само окно текстового редактора. Не надо искусственно делить его на более короткие строки — компьютер сделает это за вас. Клавишу Enter следует нажимать только в конце абзаца. По окончании ввода текста нажмите кнопку ОК.

Текст показывается с автоматическим переносом слов на новую строку благодаря тому, что установлено свойство Word Wrap (перенос по словам). Если значение этого свойства true (истина), то текст будет автоматически переноситься, если false (ложь) — не будет.

7. Сохраните проект и запустите программу. Убедитесь, что введенный вами текст появляется. Правда, его можно изменять, но если программу закрыть, а потом запустить снова, то изменения исчезают и восстанавливается первоначальный текст. Впрочем, если вы хотите, чтобы ваш ReadMe вообще нельзя было изменить, даже временно, это тоже можно сделать. Остановите программу (то есть вернитесь в режим редактирования проекта, когда видно окно инспектора объектов). Измените у объекта Memo1 свойство Read Only (только читать) на true (истина). Для этого выделите это свойство в инспекторе объектов, нажмите появившуюся справа кнопочку со стрелкой и выберите из открывшегося списка слово true. Снова сохраните и запустите программу. Убедитесь, что теперь текст редактировать не получается.

Напомним, что результатом работы программы является файл Project1.exe, который находится в папке «Пример 3». Скопируйте или перенесите этот файл туда, куда вам нужно (на рабочий стол, на дискету и т. п.). Файл можно переименовать в ReadMe.exe или еще как-нибудь, на ваш вкус. Для этого надо найти файл в «Проводнике» Windows или с помощью какого-то другого средства работы с файлами, щелкнуть по его ярлыку правой клавишей мыши и в появившемся контекстном меню выбрать пункт «Переименовать».

Домашнее задание

  • Напишите указанным выше способом программу, допустим, с поздравлением кому-то из ваших друзей или родных с днем рождения (или с 23 февраля, или с 8 марта). В следующих статьях цикла мы покажем, как использовать в таких поздравлениях рисунки, звуки и видео.
Ссылка на основную публикацию
Adblock detector