4825
Создание первой программы в языке Turbo Pascal
Лекция
Информатика, кибернетика и программирование
Создание первой программы. Цель: Показать студентам управление программой при помощи меню. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить создавать программы. Развивающая: развитие внимат...
Русский
2012-11-27
94.5 KB
2 чел.
Создание первой программы.
Цель:
Показать студентам управление программой при помощи меню.
Задачи:
Воспитательная: повторение уже изученного языка программирования Turbo Pascal.
Учебная: научить создавать программы.
Развивающая: развитие внимательности.
План занятия.
Изучение нового материала.
Продолжим создание программ на основе уже знакомой программы. Для этого используем не визуальные компоненты TMainMenu и TPopupMenu. Измененная форма с этими компонентами показана на рисунке.
Как видно из рисунка, на форме добавились еще два компонента. Причем эти компоненты можно располагать где угодно, так как они при компиляции и запуске программы будут не видны.
Компонент TMainMenu предназначен для добавления к программе главного меню, без которого не обходится практически ни одно из приложений. Чтобы добавить к программе меню, надо выбрать на вкладке Standard компонент TMainMenu. Меню создается с помощью специального редактора. Редактор меню вызывается двойным щелчком на объекте MainMenu1. Первоначально меню пустое. В Инспекторе объектов надо открыть категорию Localizable (настраиваемые) и в свойстве Caption (заголовок) ввести название первого пункта, например &Файл и нажать кнопку Enter. Редактор меню переключится обратно в проектируемое меню, где появится первый пункт. Теперь опять нажать на клавишу Enter, и система переключится к заголовку Caption для нового пункта. В него вводится очередное название (&Вычислить)и нажать кнопку Enter. То же самое сделаем для кнопки Завершить. Когда меню подготовлено, редактор можно закрыть.
Чтобы выполнить вычисление, выберем пункт меню Вычислить. При щелчке на нем в Проектировщике форм будет создан соответствующий обработчик. Повторно писать ранее созданный код (метод Button1Click) не имеет смысла. Проще и правильнее вызвать метод Button1Click напрямую, передав ему параметр Sender.
Обработчик события выглядит следующим образом.
procedure TForm1.N2Click(Sender: TObject);
begin
Button1Click(Sender)
end;
То же самое сделаем и для кнопки Завершить.
procedure TForm1.N3Click(Sender: TObject);
begin
Button2Click(Sender)
end;
Теперь создадим обработчик щелчка мыши на объекте. Такая возможность используется, когда важно просто среагировать на щелчок, не анализируя координаты указателя. Для этого обрабатывают событие OnClick, которое чаще всего используют в таких объектах, как кнопка или переключатель, где знание точных координат указателя мыши не обязательно. Такой подход не всегда устраивает разработчика, поэтому в системе имеются еще два события: OnMouseDown (При нажатии кнопки мыши) и OnMouseUp (При отпускании кнопки мыши). Они содержат подробную информацию о параметрах щелчка: координаты указателя в рамках клиентской области объекта, на котором выполнен щелчок, тип щелчка (одинарный или двойной), какая кнопка мыши была нажата/отпущена и состояние системных клавиш SHIFT, ALT, CTRL.
Контекстное меню, вызываемое в сделанном приложении по щелчку правой клавишей мыши, является удобной и стандартной возможностью программ. Компонент TPopupMenu (всплывающее меню) предназначен для создания контекстных меню. После того как компонент TPopupMenu размещен на форме, структура меню формируется таким же способом, как и основное меню. Единственное отличие состоит в том, что в контекстном меню не может быть нескольких раздело верхнего уровня, так как все пункты располагаются в одном вертикальном столбце.
Дважды щелкнув на пункта Завершить, в обработчик события можно скопировать раннее созданный оператор завершения работы или ссылку на него.
procedure TForm1.N5Click(Sender: TObject);
begin
Button2Click(Sender)
end;
То же самое сделаем для пункта Вычислить
procedure TForm1.N4Click(Sender: TObject);
begin
Button1Click(Sender)
end;
Теперь осталось вызвать созданное меню из программы. Чтобы добавить в программу обработчик такого события, надо в Проектировщике форм выделить главную форму и в Инспекторе объектов на вкладке Events дважды щелкнуть в строке с надписью OnMouseUp. В теле данной процедуры необходимо активизировать контекстное меню PopupMenu1. Это осуществляется с помощью метода Popup() с двумя параметрами координатами верхнего левого угла меню. Только указываются эти координаты в экранной системе отсчета, а не в границах клиентской части программы. Чтобы указать корректное значение координат, надо добавить к ним смещение, определяющее начало клиентской части формы. Пересчитать экранные координаты точки щелчка в координаты клиентской области можно с помощью метода GetClientOrigin. Эта функция обращается к стандартным функциям Windows и возвращает корректное значение смещения. Результирующее значение имеет тип TPoint (Координатная точка), представляющий собой запись из двух элементов; X и Y.
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var P:TPoint;
begin
P:=GetClientOrigin;
IF Button = mbRight then PopupMenu1.Popup(P.X+X,P/Y+Y);
end;
Тип TMouseButton является перечислимым типом и содержит значения mbLeft, mbRight, mbMiddle (признаки использования левой, правой и средней кнопок мыши). Тип TShiftState представляет собой множество: так как можно выполнить, например, двойной щелчок, одновременно удерживая нажатыми клавиши ALT и SHIFT, необходимо проверять комбинации допустимых значений.
Полный листинг программы приведен
unit vrun1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
MainMenu1: TMainMenu;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
dist : integer;
t: real;
min : integer;
sek : integer;
v: real;
begin
dist := StrToInt(Edit1.Text);
t := StrToFloat(Edit2.Text);
min := Trunc(t);
sek := Trunc(t*100) mod 100;
v := (dist/1000) / ((min*60 + sek)/3600);
label4.Caption := 'Дистанция: '+ Edit1.Text + ' м' + #13 +
'Время: ' + IntToStr(min) + ' мин ' +
IntToStr(sek) + ' сек ' + #13 +
'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/ч';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Button1Click(Sender)
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Button2Click(Sender)
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Button2Click(Sender)
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Button1Click(Sender)
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var P:TPoint;
begin
P:=GetClientOrigin;
IF Button = mbRight then PopupMenu1.Popup(P.X+X,P/Y+Y);
end;
end.
Контрольные вопросы
Резюме
Домашнее задание
Написать собственную программу.
А также другие работы, которые могут Вас заинтересовать | |||
76117. | НОВЫЙ ВЗГЛЯД НА РУССКУЮ РЕВОЛЮЦИЮ | 52.5 KB | |
И цель предлагаемой статьи рассмотреть влияние которое недавние политические и интеллектуальные изменения оказывают на изучение революции. В течение семи десятилетий дискуссии о русской революции 1917 г. | |||
76118. | Петровские реформы | 48.5 KB | |
Такова притягательная сила личности Петра Великого первого Российского императора великого реформатора. История России до Петра Великого и после него знала немало реформ. Реформы проводились в течение всего правления Петра I. | |||
76120. | Принципы организации и виды финансовой политики предприятия | 29.79 KB | |
В данной работе рассматривается финансовая палитика предприятия стратегические направления которые определяют долгосрочную и среднесрочную перспективу использования финансов и предусматривают решение главных задач вытекающих из... | |||
76121. | Мистецтво усного публічного мовлення. Мистецтво переконувати | 104.5 KB | |
Переконливе пристрасне слово дійовий засіб організації стосунків між людьми в діловій сфері могутній чинник виховання. Живе слово особистий приклад величезна сила. Поведінка оратора його мова жести вигляд усе це взірець для слухачів. | |||
76122. | ФИЗИОЛОГИЧЕСКАЯ ОПТИКА РЕФРАКЦИЯ АККОМОДАЦИЯ | 490 KB | |
Методическое пособие составлено на основе опыта преподавания офтальмологии Воронежской государственной медицинской академии имени Н.Н.Бурденко и включает сведения о клинике различных форм аметропии их коррекции лечении и профилактике. | |||
76123. | Стандарты обслуживания клиентов в аптеке | 155.97 KB | |
В общении с клиентами и коллегами использовать спокойный уважительный доброжелательный тон не перекрикиваться с сотрудниками. А также решение рабочих бытовых внутрифирменных личных вопросов не связанных с обслуживанием покупателей осуществлять в производственных помещениях не в торговом зале. | |||
76124. | Органический синтез | 50.5 KB | |
Органический синтез раздел органической химии в котором рассматриваются пути и методы искусственного создания органических соединений в лаборатории и промышленности. Широко применим в лабораторных условиях главным образом для исследовательских целей и в промышленности. | |||