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() с двумя параметрами – координатами верхнего левого угла меню.

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

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


 

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

53423. Зимова подорож до святого Миколая. Виготовлення листівки бажань 41.5 KB
  Зимова подорож до святого Миколая. Мета: розширити знання учнів про святого Миколая; вчити учнів правильно виразно читати поетичні твори; збагачувати словниковий запас учнів; виготовити листівку бажань; сприяти вихованню міцної внутрішньої опори людини що знаходить свій прояв у доброті чуйності лагідності. Сьогодні на уроці ми завітаємо у гості до святого Миколая. Я знаю що день святого Миколая улюблене свято українських дітей.
53424. Інтегроване заняття з використанням наочного моделювання 31 KB
  На основі знайомої казки Колосок за допомогою схемсимволів вчити дітей сприймати зміст казки. Хіба зможемо прожити ми без них Діти вам подобаються казки Що вам подобається в казках Так всі люблять казки кони ведуть нас у світ пригод вчать розпізнавати добро зло. 1 коробка Діти підійдіть до коробки з літерою А в коробці захована схема з гудзиків за казкою Колосок З якої казки герої Який був півник Якими були мишенята Як звали Півника мишенят Чому вчить ця казочка Хто не працює той не їсть Потрібно...
53425. Формування ключових компетентностей молодшого школяра шляхом впровадження інтегрованих уроків 299 KB
  Предметних компетентностей: ознайомити дітей з усіма варіантами числа 7; вчити учнів складати розвязувати читати вирази на додавання в межах 7; вивчити назви днів тижня; розвивати мислення память; розширити знання про фрукти їх користь для людей; збагатити словниковий запас поняттями екзотика екзотичні фрукти; виховувати бережливе ставлення до природи зокрема садупрагнення до здорового харчування. Обладнання: мультимедійний проектор компютер аудіозаписи мікрофон демонстраційний матеріалкартки із...
53426. Закріплення вивчених букв. Робота з дитячою книгою. Українська народна казка «Курочка Ряба». Виготовлення курочки з солоного тіста 209 KB
  Мета Формувати у дітей поняття про казку як художній твір,Розвивати навички слухання та інтонування почутого, мовлення, уяву, фантазію, логічне раціональне мислення, використовуючи методи інтерактивного навчання; закріплювати вміння читати слова, речення та тексти з вивченими буквами, вдосконалювати навички звукового аналізу слів;
53427. Таблицы сложения и вычитания числа 9. Периметр четырехугольника. Изготовление кораблика способом оригами 180.5 KB
  Трудовое обучение: продолжать знакомить учеников с оригами как видом искусства; учить изготавливать кораблик способом складывания и перегибания бумаги; развивать внимание усидчивость умение работать по технологической карте; воспитывать усидчивость старательность. Как называется эта геометрическая фигура четырехугольник Работа по таблице четырехугольники.
53428. Весна прийшла. Вірш Л.Українки «Вишеньки». Виготовлення сувеніру для мами 76.5 KB
  Мета: вчити учнів виготовляти сувеніри і розвивати вміння самостійно добирати розмір колір матеріал працювати з поролоном і картоном; формувати емоційно-позитивне ставлення до художнього образу вишні; поглибити кявлення про народні звичаї та повіря; розвивати звязне мовлення творчість мислення естетичний смак; виховувати любов до мами почуття вдячності і шанобливе ставлення повагу гордість за рідну матусю бажання...
53429. Життя в добрі 3.65 MB
  Так би і померла та людина, аби тою дорогою не проїздив самарянин. Треба відмітити, що євреї не любили самарян. Вони не розмовляли з самарянами і навіть не пускали їх у свій храм для поклоніння Богу. Але коли самарянин побачив пораненого єврея, то не став згадувати про це.
53430. Математична подорож на Південний берег Криму 722 KB
  На тему: Математична подорож на Південний берег Криму. Математичнаподорож на Південний берег Криму. Ознайомити учнів з географічним положенням рослинним та тваринним світом Південного берега Криму розширювати та збагачувати знання дітей про природу виховувати любов до природи та бережливе ставлення до її багатств. Обладнання: фізична карта України гербарій рослин Південного берега Криму мультимедійні засоби навчання малюнки підручники: 1 Богданович М.
53431. Хімічна промисловість 91.5 KB
  Мета уроку: навчальна: Дати характеристику галузевої структури промисловості пояснити чинники розміщення різних типів підприємств визначити взаємозвязки хімічної промисловості з іншими ознайомити учнів зі зразками полімерів продуктами хімічної промисловості пояснити хімічні процеси які відбуваються під час промислового синтезу речовин; розвивальна: розвивати память логічне мислення уміння нестандартного...