4825

Создание первой программы в языке Turbo Pascal

Лекция

Информатика, кибернетика и программирование

Создание первой программы. Цель: Показать студентам управление программой при помощи меню. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить создавать программы. Развивающая: развитие внимат...

Русский

2012-11-27

94.5 KB

2 чел.

Создание первой программы.

Цель:

Показать студентам управление программой при помощи меню.

Задачи:

Воспитательная: повторение уже изученного языка программирования Turbo Pascal.

Учебная: научить создавать программы.

Развивающая: развитие внимательности.

План занятия.

  1.  Организационный момент.
  2.  Изучение нового материала.
  3.  Контрольные вопросы.
  4.  Резюме.
  5.  Домашнее задание.

Изучение нового материала.

   Продолжим создание программ на основе уже знакомой программы. Для этого используем не визуальные компоненты 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.

Контрольные вопросы

  1.  Для чего предназначен компонент TMainMenu? Как создается данное меню?
  2.  Для чего предназначен компонент TPopupMenu? Как создается данное меню?
  3.  Вызов контекстного меню. Метод вызова.

Резюме

  1.  Компонент TMainMenu предназначен для добавления к программе главного меню, без которого не обходится практически ни одно из приложений. Меню создается с помощью специального редактора
  2.  Компонент TPopupMenu (всплывающее меню) предназначен для создания контекстных меню. После того как компонент TPopupMenu размещен на форме, структура меню формируется таким же способом, как и основное меню.
  3.  Теперь осталось вызвать созданное меню из программы. Чтобы добавить в программу обработчик такого события, надо в Проектировщике форм выделить главную форму и в Инспекторе объектов на вкладке Events дважды щелкнуть в строке с надписью OnMouseUp. В теле данной процедуры необходимо активизировать контекстное меню PopupMenu1. Это осуществляется с помощью метода Popup() с двумя параметрами – координатами верхнего левого угла меню.

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

   Написать собственную программу.


 

А также другие работы, которые могут Вас заинтересовать

33267. Характеристика основных принципов управления организацией 58.5 KB
  творчества менеджеров основаны на определенных законах Законы управления Законы управления Содержание 1. Организация управления 4. Законы присущие всем сторонам управления 1.
33268. Эволюия основных подходов к менеджменту, характеристика школ 49 KB
  Эволюия основных подходов к менеджменту характеристика школ Основные положения школ менеджмента: Школа научного управления. Школа административного управления. Ее основные принципы: Развитие принципов управления. Описание функций управления.
33269. Характеристика современных концепций менеджмента (системный , ситуационный , количественные подходы). Сущность целевого и стратегического подхода в менеджменте 30.5 KB
  При ситуационном подходе возникшем в конце 60х годов не считается что концепции традиционной теории управления. школы человеческих отношений и школы науки управления неверны. Считая концепцию процесса управления применимой ко всем организациям сторонники ситуационного подхода нашего столетия признают что. хотя общий процесс одинаков специфические приемы которые должен использовать руководитель для эффективного управления могут значительно варьироваться.
33270. Классификация и общая характеристика управления методов управления персоналом 56.5 KB
  Классификация и общая характеристика управления методов управления персоналом Управление персоналом как специфическая деятельность осуществляется с помощью различных методов способов воздействия на сотрудников. Экономические методы Экономические методы управления являются способами воздействия на персонал на основе использования экономических законов. Наиболее распространенными формами прямого экономического воздействия на персонал являются: хозяйственный расчет материальное стимулирование и участие в прибылях через приобретение ценных...
33271. Управленческое решение: содержание, виды . Стадии и технологии принятия управленческих решений 68.5 KB
  Классификация управленческих решений Классификационный признак Группы Управленческих решений Степень повторяемости проблемы Традиционные Нетипичные Значимость цели Стратегические Тактические Сфера воздействия Глобальные Локальные Длительность реализации Долгосрочные Краткосрочные Прогнозируемые последствия решения...
33272. Элементы налога на имущество организаций и их характеристика 26 KB
  Элементы налога на имущество организаций и их характеристика. Налог на имущество организаций является наиболее весомым в региональных налогах. Плательщиками налога на имущество являются: организации включая банки и кредитные учреждения в том числе с иностранными инвестициями являющиеся юридическими лицами в соответствии с законодательством РФ; филиалы и другие аналогичные подразделения организаций имеющие отдельный баланс и расчетный счет; организации с иностранными инвестициями иностранные компании фирмы международные объединения и...
33273. Элементы транспортного налога и их характеристика 25.5 KB
  Объектом налогообложения являются транспортные средства подлежащие регистрации в соответствии с постановлением Правительства РФ №938 от 12. Налоговой базой является мощность двигателя которая указана в технологическом паспорте транспортного средства в лошадиных силах или киловаттах мощности. Налог исчисляется в рублях с каждой лошадиной силы киловатта мощности каждого транспортного средства по ставкам. Налог уплачивается раз в год по месту нахождения плательщика или регистрации транспортного средства и зачисляется в территориальный...
33274. Элементы налога на имущество физических лиц и их характеристика 25.5 KB
  Элементы налога на имущество физических лиц и их характеристика. Плательщиками налога на имущество физических лиц являются граждане РФ иностранные граждане и лица без гражданства имеющие на территории РФ в собственности движимое и недвижимое имущество. Объектом обложения являются находящиеся в собственности физического лица недвижимое и движимое имущество которое соответственно можно разделить на две группы: 1. При исчислении налога на недвижимое имущество налогооблагаемой базой является оценочная стоимость имущества которая может быть...
33275. Элементы земельного налога и их характеристика 33.5 KB
  Существует несколько форм платы за землю: земельный налог арендная плата нормативная цена земли. Ежегодным земельным налогом облагаются собственники земли землевладельцы и землепользователи кроме арендаторов. Арендная плата взимается за земли переданные в аренду. Для покупки и выкупа земельных участков в случаях предусмотренных земельным законодательством РФ а также для получения под залог земли банковского кредита устанавливается нормативная цена земли.