Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Algus0309.DOC
Скачиваний:
15
Добавлен:
31.03.2015
Размер:
629.76 Кб
Скачать
    1. Принципы визуального программирования

Поставим перед собой задачу создания простейшей работающей программы. При запуске нашей программы на экране появится окно, приведенное на рис. 1.2. В поля “Ввод 1” и “Ввод 2” можно ввести любой текст. При нажатии на кнопку “Перенос” в поле “Вывод” появится текст, полученный путем сцепления текстов полей для ввода. При нажатии на кнопку “Конец” программа заканчивает свою работу.

Рис. 1.2. Окно простейшей программы

Как было сказано выше, при запуске Delphi автоматически создаются форма (Form1) и соответствующий ей программный модуль (Unit1). Дадим форме название “Мой первый пример”. Для этого в инспекторе объектов изменим значение свойства “Caption”. Для получения заглавия в форме поступим следующим образом. В палитре компонент “Standard” имеется компонента “Label”, обозначенная буквой “А”. Вы, наверно, уже обратили внимание, что при передвижении курсора мыши по палитре компонент на экране появляются подсказки. Если подсказки еще нет, то поставьте курсор мыши на букву А и дождитесь ее. Щелкаем левой клавишей мыши на А, перенесем курсор мыши на нашу форму примерно на то место, где должно начинаться заглавие формы и, держа левую клавишу нажатой, передвигаем мышь направо и вниз на небольшое расстояние. Появится четырехугольник с надписью “Label1”. Изменим значение его свойства “Caption” на желаемый заголовок формы. Четырехугольник принимает требуемые для размещения заголовка размеры, однако он может не находиться в центре. Для его центрирования передвигаем курсор мыши на любую точку внутри его и нажмем на правую кнопку (в углах четырехугольника должны быть черные квадратики, если их нет, то сначала щелкните левой клавишей.) Появится локальное (pop-up menu) меню. Выберем пункт “Alignment”, появится окно и в его левой половине с названием “Horizontal” выберем “Center in window”. В результате заглавие окажется в центре формы.

Приступаем к формированию названий полей ввода/вывода. Для этого необходимо перенести на форму три компоненты “Label” и дать им требуемые названия. Чтобы не повторять описанные выше действия три раза, держим при выборе из палитры нажатой клавишу “Shift”. После этого нарисуйте на форме три поля для будущих названий, они будут иметь названия по умолчанию Label2. . . Label4. После рисования трех указанных полей передвигайте курсор мыши на знак  и делайте щелчок: это освобождает компоненту Label. Если этого не сделать, то при манипуляции мышью будут возникать все новые компоненты Label. Затем даем всем меткам оговоренные выше названия через свойство “Caption”. Выравниваем только что введенные поля. Для этого:

  • щелкните левой клавишей мыши за пределами трех введенных полей (ни на одном из них не должно быть черных квадратиков);

  • поставьте курсор мыши выше и левее верхней метки, держите левую клавишу нажатой и рисуйте прямоугольник (он будет показан пунктирной линией) вокруг всех меток, после завершения рисования прямоугольника в углах всех меток появятся серые квадратики: это означает, что их выделение выполнено, в противном случае начинайте этот пункт сначала;

  • поставьте курсор мыши на одной из выделенных меток и нажмите на правую клавишу: появится знакомое локальное меню, из него выберите пункт “Alignment”, и Вы получите возможность выравнивания (по гори­зон­тали) по левым или правым границам; желательно самому поэкспериментировать с разными вариантами выравнивания и посмотреть их влияние;

  • для завершения выравнивания щелкните левой клавишей мыши в любом месте за пределами выделенных полей.

Для полей данных перенесем из палитры компонент на нашу форму три компоненты Edit, обозначенных на палитре через “ab”. Их перенос и выравнивание осуществляется аналогично меткам. Рекомендуем читателю проделать это самостоятельно. Среди свойств компоненты Edit имеется ReadOnly, которое по умолчанию имеет значение False, т.е. это поле может быть использовано как для ввода, так и для вывода данных. Если дать этому свойству значение True, то оно будет в дальнейшем использоваться только для вывода данных; менять в нем значения невозможно. Рекомендуем читателю менять значение этого свойства для поля вывода. Этим мы завершим формирование на форме пояснительного текста и полей для данных и приступаем к формированию управляющих компонент – кнопок. Для этого перенесем на форму две компоненты “Button”, обозначенных в палитре через “ОК”, поменяем их названия известным нам способом. После этого обратим снова внимание на инспектор объектов. Прямо под словами “Object Inspector” приведено название того объекта, чьи свойства показаны, справа имеется знак . Известным способом можно вызвать выпадающий список имеющихся объектов (Form1, Label1, . . .) и выбрать объект, свойства которого необходимо видеть и/или изменить. Рекомендуем читателю немного поэкспериментировать со свойствами Font и Color: выбирать для них разные значения и следить за изменениями на форме.

Поставим задачу реализации кнопок “Перенос” и “Конец”. Начнем с последней. Делаем двойной щелчок на ней левой клавишей мыши. В результате откроется “заготовка” процедуры, исполняемая часть которой будет в дальнейшем выполняться при нажатии этой кнопки. Реализация кнопки “Конец” предельно проста и состоит из одного слова:

procedure TForm1.Button1Click(Sender: TObject);

begin

Close;

end;

В Windows закрытие главного окна программы означает ее завершение. Для реализации кнопки “Перенос” поступим аналогично и запишем напечатанный жирным шрифтом оператор:

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit3.Text:=Edit1.Text+Edit2.Text;

end;

Пояснения:

  • Edit1, Edit2, Edit3 – имена полей редактирования;

  • Text – свойство объекта Edit, задающее текст, который будет показан на экране.

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

Часто необходимо задавать начальные значения переменным или выполнять другие инициирующие действия при запуске программы. В Delphi это делается путем задания реакции на событие создания главного окна. Переключим инспектор объектов на объект Form1, сам инспектор переключим на события (Events, путем щелканья мышью на этом слове) и найдем событие onCreate. Делаем на нем двойной щелчок и дополним открывшуюся процедуру:

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:=‘’;

Edit2.Text:=‘’;

end;

После этого наше первое приложение готово и можно его запустить через меню, нажатием функциональной клавиши F9 или путем щелканья на зеленом треугольнике. Для остановки приложения:

  • нажмите на кнопку “Конец”;

  • выберите нужный пункт из меню Delphi;

  • щелкните на значке , чтобы закрыть окно и тем самым остановить приложение;

  • активизируйте системное меню WINDOWS щелчком мыши в верхнем левом углу, выберите пункт “Закрыть” или нажмите на комбинацию клавиш Alt+F4 (комбинация клавиш действует и без активизации системного меню).

В отличие от традиционных программ программа на Delphi может быть остановлена (как описано выше) или переведена в состояние паузы путем выбора подпункта Pause пункта меню Run или щелканьем на “горячей клавише”   (находится рядом с зеленым треугольником и активизируется при запуске программы). Разница между остановкой программы и состоянием паузы заключается в следующем:

  • при остановке программы все переменные теряют свои значения и при новом запуске выполнение начнется сначала;

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

Таким образом, завершим создание простейшей работающей программы в Delphi. Поставим перед собой задачу ее изменения, чтобы она могла работать с числовыми данными (значение свойства Text объекта Edit имеет тип String), точнее, чтобы при нажатии на кнопку “Перенос” в поле “Вывод” появилась сумма чисел, набранных в полях ввода. Для этого требуется вставить в программу реализации кнопки “Перенос” процедуры или функции преобразования типов. Одна из возможных реализаций приведена ниже:

procedure TForm1.Button1Click(Sender: TObject);

Var

k1,k2,res,sign :integer;

s1 :string;

begin