Содержание
- 2. Введение. Особенности программирования «под Windows» Управление техническими средствами осуществляется через API (Application Program Interface) – набор
- 3. Принцип событийного управления Приложение (в отличие от программы) – набор подпрограмм, вызываемых при наступлении некоторого события,
- 4. Структура приложения Минимально любое приложение Windows состоит из двух частей: основной программы и оконной функции. Появившиеся
- 5. Обработка сообщения от клавиатуры
- 6. Завершение приложения
- 7. Глава 8 Программирование в среде Delphi (Lazarus) с использованием библиотеки VCL (LCL) МГТУ им. Н.Э. Баумана
- 8. 8.1 События среды и их обработчики Обработчики сообщений операционной системы (ОС) предусмотрены у объектов класса TForm
- 9. События среды Обработчики сообщений ОС, встроенные в классы компонентов VCL, инициируют множество событий среды Delphi или
- 10. Для каждого обработчика событий предусмотрен заголовок и определенный список передаваемых ему параметров. а) procedure TForm1.FormActivate(Sender:TObject); Параметр
- 11. Основное окно приложения строится на базе класса TForm. При входе в среду программирования предоставляется заготовка приложения,
- 12. а) при изменении состояния формы: OnCreate – в начальной стадии создания формы - используется при необходимости
- 13. б) от клавиатуры и мыши: OnKeyPressed – при нажатии клавиш, которым соответствует код ANSI; OnKeyDown, OnKeyUp
- 14. 1. Метка (класс TLabel) Метка – окно с текстом и может использоваться для формирования на форме
- 15. 2. Строчный редактор (класс TEdit) Компонент представляет собой окно, обычно выделенное цветом, которое может использоваться, например,
- 16. 3. Кнопка Компонент представляет собой окно, в котором размещается название кнопки. Используется для инициирования каких-либо действий.
- 17. 1 Метод MessageBox (класс TApplication) function MessageBox(Text, Caption: PChar; Flags:Longint=MB_OK):Integer; Пример: Application.MessageBox('Строка пуста', 'Error',mb_Ok); Возвращает код
- 18. Вычисление квадрата заданного числа Form1: Name:=MainForm; Caption:='Возведение в квадрат'; Label1: Name:='InputLabel'; Caption:='Введите число'; Label2: Name:=OutPutLabel; Caption:='Квадрат
- 19. Формы интерфейса
- 20. Диаграмма состояний интерфейса Нормальное состояние
- 21. Объектная декомпозиция в виде диаграммы объектов
- 22. Определение обрабатываемых событий по диаграмме состояний интерфейса С1 – активация формы; С2 – ввод Enter; С3
- 23. Диаграмма классов приложения
- 24. Program Ex8_01; Uses Forms, MainUnit in 'MainUnit.pas' {MainForm}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TMainForm, MainForm); Application.Run; end.
- 25. Unit MainUnit; interface Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; Type TMainForm
- 26. var MainForm: TMainForm; implementation {$R *.DFM} procedure TMainForm.FormActivate(Sender: TObject); begin NextButton.Enabled:=false; InPutEdit.ReadOnly:=false; InPutEdit.Clear; InPutEdit.Enabled:=true; InPutEdit.SetFocus; OutPutLabel.Visible:=false;
- 27. procedure TMainForm.InPutEditKeyPress(Sender: TObject; var Key: Char); var x:real;Code:integer; begin If Key=#13 then begin Key:=#0; Val(InPutEdit.Text,x,Code); if
- 28. else begin MessageDlg('Недопустимые символы.',mtError, [mbOk], 0); end end end; procedure TMainForm.NextButtonClick(Sender: TObject); begin FormActivate(NextButton); end; procedure
- 29. Дополнительные скалярные типы данных а) целый Cardinal 0..2147483647 без знака 4 байта б) логические ByteBool 1
- 30. Тип «Дата-время» д) TDateTime - Double – целая часть – число дней с 30.12.1899, дробная –
- 31. Тип «Дата-время» 7) function StrToDate(S:String):TDateTime – преобразует строку в дату, разделитель – символ, указанный при настройке
- 32. Строковые типы a) ShortString – до 255 символов, 0-й байт – длина строки; б) AnsiString –
- 33. Дополнительные процедуры и функции 1) function ANSILowerCase(const S:String):String – заменяет прописные буквы на строчные; 2) function
- 34. Дополнительные процедуры и функции (2) 7) function IntToStr(V:Integer):String – преобразует целое число в строку символов; 8)
- 35. 1. Изменены некоторые служебные слова и названия процедур: Text ⇒ TextFile Assign ⇒ AssignFile Close ⇒
- 36. Процедурный тип данных 1) При объявлении указателя на метод добавляют of object Пример: Type metodproc =
- 37. Основная особенность: все объекты размещаются в динамической памяти. Переменные класса являются ссылками. В отличие от указателей
- 38. Конструктор Create и деструктор Destroy класса должны содержать вызов конструктора и деструктора TObject, которые обеспечивают выделение
- 39. 1) виртуальные методы: procedure Print;virtual; {в базовом класса} procedure Print;override; {в производном классе} 2) абстрактные методы:
- 40. Type pTNum = ^TNum; TNum = Object n: integer; procedure Init (an:integer); end; Procedure TNum.Init; begin
- 41. Var A, B:TNum; A:=TNum.Create; B:=A; B.Destroy; A.n:=3; {!!!} Особенности работы с объектами
- 42. 8.6 События Мыши 1 Событие «Нажатие кнопки мыши над компонентом окна приложения»: procedure MouseDown(Sender: TObject; Button:
- 43. События Мыши (2) 2 Событие «Движение мыши»: procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); 3
- 44. 8.7 Создание графических изображений Изображения в Windows создаются с помощью типов: точка, прямоугольник; и компонентов: перо,
- 45. Точка и прямоугольник Точка – тип, позволяющий определить точку на экране: type TPoint = record X:
- 46. Компонент перо (класс TPen) C помощью класса TPen создается объект Перо, служащий для вычерчивания линий, контуров
- 47. Компонент Кисть (класс TBrush) Объекты класса TBrush служат для заполнения внутренего пространства. Свойства: Color:TColor – цвет
- 48. Компонент Шрифт (класс TFont) Объект класса TFont – определяет шрифт, которым выводится текст. Свойства: Charset:TFontCharSet –
- 49. Компонент Канва (класс TCanvas) Класс создает Канву – холст для рисования. Свойства: Brush:TBrush – кисть; Pen:TPen
- 50. Основные методы класса TCanvas procedure MoveTo(X,Y:Integer) – перемещает перо в указанную точку; procedure LineTo(X,Y:Integer)– чертит линию
- 51. Основные методы класса TCanvas (2) procedure Arc(X1,Y1,X2,Y2,X3,Y3, X4,Y4:integer) – чертит дугу эллипса в прямоугольнике (X1,Y1,X2,Y2), направление
- 52. Основные методы класса TCanvas (3) procedure FillRect(const Rect: TRect)– закрашивает кистью прямоугольник, включая левую и верхнюю
- 53. Основные методы класса TCanvas (4) procedure TextOut(X,Y:Integer; const Text:string)– вывод строки текста шрифтом TFont в прямоугольник
- 54. Компонент Образ (класс TImage) Образ – окно для работы с графикой. Свойства: AutoSize:Boolean – автоматическое изменение
- 55. Рисование прямоугольников (Ex8_2)
- 56. Модуль MainUnit unit MainUnit; interface Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
- 57. Модуль MainUnit (2) var MainForm: TMainForm; implementation Var Rect:TRect;first:boolean; {$R *.DFM} procedure TMainForm.FormActivate(Sender: TObject); begin Image.Canvas.Brush.Color:=clWhite;
- 58. Модуль MainUnit (3) procedure TMainForm.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if ssLeft in Shift
- 59. Модуль MainUnit (4) procedure TMainForm.ImageMouseUp(Sender: TObject; Button: TMouseButton;Shift:TShiftState;X,Y:Integer); begin if Button=mbLeft then begin Image.Canvas.Pen.Color:=clWhite; Image.Canvas.Rectangle(Rect.Left,Rect.Top, Rect.Right,Rect.Bottom);
- 60. 8.8 Создание приложений с движущимися изображениями 1 Перемещение x1 = x + dx, y1 = y
- 61. Вращение фигур (Ex8_03)
- 62. Объектная декомпозиция h*sin α h h*cos α α (x,y) dx = h*cos α dy = h*sin
- 63. Диаграмма классов предметной области TObject TFigure -x,y,halflen, -dx,dy, -Image -Draw() -Rel() +Create() +Move() TLine -Draw() TSquare
- 64. Модуль Figure Unit Figure; Interface Uses graphics,ExtCtrls; Type TFigure=Class x,y, halflen,dx,dy:integer; Image:TImage; constructor Create(ax,ay,ah:integer;aImage:TImage); procedure Move(t:single);
- 65. Модуль Figure (2) Implementation Constructor TFigure.Create; Begin inherited Create; x:=ax; y:=ay; halflen:=ah; Image:=aImage; End; Procedure TFigure.Rel;
- 66. Модуль Figure (3) Procedure TLine.Draw; Begin Image.Canvas.MoveTo(x+dx,y+dy); Image.Canvas.LineTo(x-dx,y-dy); End; Procedure TSquare.Draw; Begin Image.Canvas.MoveTo(x+dx,y+dy); Image.Canvas.LineTo(x-dy,y+dx); Image.Canvas.LineTo(x-dx,y-dy); Image.Canvas.LineTo(x+dy,y-dx);
- 67. Описание класса окна Unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
- 68. Объявление объектов implementation uses Figure; {$R *.dfm} Var t:single=0.0; L:TLine; S:TSquare; C:TCircle; procedure TMainForm.FormActivate(Sender: TObject); begin
- 69. Создание объектов и реализация движения procedure TMainForm.BeginButtonClick(Sender: TObject); begin L:=TLine.Create(60,100,50,Image); S:=TSquare.Create(180,100,50,Image); C:=TCircle.Create(300,100,50,10,Image); Timer1.Enabled:=true; // запуск таймера
- 70. Процедура завершения приложения procedure TMainForm.EndButtonClick(Sender: TObject); begin Close; end; initialization finalization L.Free; S.Free; C.Free; end.
- 71. 8.9 Использование визуальных компонентов для управления типом и параметрами фигур. Примитивный графический редактор (Ex 8.5)
- 72. Объектная декомпозиция Активизировать
- 73. Диаграмма состояний интерфейса для рисования и настройки фигур Ожидание рисования фигуры Выбор типа фигуры Выбор размера
- 74. Диаграмма классов предметной области
- 75. Unit Figure; Interface Uses extctrls,Graphics; Type TMyFigure=class public x,y,Radius:Word; Color:TColor; Image:TImage; Constructor Create(aImage:TImage; ax,ay,ar:Word;aColor:TColor); Рrocedure Clear;
- 76. TMyCircle=class(TMyFigure) public Procedure Draw; override; end; TMySquare=class(TMyFigure) public Procedure Draw; override; end; Implementation Constructor TMyFigure.Create; Begin
- 77. Procedure TMyFigure.Clear; Var TempColor:TColor; Begin TempColor:=Color; Color:=Image.Canvas.Brush.Color; Draw; Color:=TempColor; End; Модуль Figure (3)
- 78. Procedure TMyCircle.Draw; Begin Image.Canvas.Pen.Color:=Color; Image.Canvas.Ellipse(x-Radius,y-Radius, x+Radius,y+Radius); End; Procedure TMySquare.Draw; Begin Image.Canvas.Pen.Color:=Color; Image.Canvas.Rectangle(x-Radius,y-Radius, x+Radius,y+Radius); End; End. Модуль
- 79. unit Main; interface uses Windows,Messages,SysUtils,Variants,Classes,Graphics, Controls,Forms,Dialogs,ComCtrls, StdCtrls, ExtCtrls; type TMainForm = class(TForm) Image: TImage; ColorButton,ExitButton: TButton;
- 80. procedure ImageMouseDown(Sender: TObject;… ); procedure UpDownClick(Sender: TObject; …); procedure ColorButtonClick(Sender: TObject); procedure RadioGroupClick(Sender: TObject); procedure ExitButtonClick(Sender:
- 81. procedure TMainForm.ImageMouseDown(Sender: TObject; Button:TMouseButton;Shift:TShiftState;X,Y:Integer); begin if Button=mbLeft then case RadioGroup.ItemIndex of 0: begin C.Free; C:=TMyCircle.Create(Image,X,Y, strtoint(rEdit.Text),Image.Canvas.Pen.Color);
- 82. procedure TMainForm.UpDownClick(Sender:TObject; Button:TUDBtnType); begin if C nil then begin C.Clear; C.Radius:=strtoint(rEdit.Text); C.Draw; end; end; procedure TMainForm.ColorButtonClick(Sender:
- 83. Модуль Main (5) procedure TMainForm.RadioGroupClick(Sender: TObject); Var C1:TMyFigure; begin if C nil then begin C.Clear; case
- 84. Модуль Main (5) procedure TMainForm.ExitButtonClick(Sender:TObject); begin Close; end; initialization finalization C.Free; end.
- 85. 8.10 Построение графиков функции (Ex 8.4)
- 86. Отображение графика функции на экран Масштабы по осям ОХ и ОУ: xm ym mx= ------------ ,
- 87. Модуль Graphic unit Graphic; Interface Uses ExtCtrls,Graphics; Type Fn=Function(X:single):single; {процедура рисования графиков} Procedure Run( xn, {начальное
- 88. Модуль Graphic Implementation Procedure Run; Var arr:array[1..200] of {координаты точек на холсте} record x,y:integer; end; x,
- 89. Модуль Graphic (2) Begin Image.Canvas.Pen.Color:=clGreen; Image.Canvas.Rectangle(x1,y1,x2,y2); {рамка} xm:=x2-x1+1; ym:=y2-y1+1; {область графика} dx:=(xk-xn)/n; {шаг просчета точек} x:=xn;
- 90. Модуль Graphic (3) Image.Canvas.Pen.Color:=clRed; Image.Canvas.Pen.Width:=3; x:=xn; for i:=1 to n do {считаем координаты точек} begin arr[i].x:=round((x-xn)*mx)+x1+xs;
- 91. Модуль Graphic (4) x:=xn; dxl:=(xk-xn)/5; {расстояние между линиями сетки} Image.Canvas.Pen.Width:=1; Image.Canvas.Pen.Color:=clBlue; repeat {вертикальные линии сетки и
- 92. Модуль Graphic (5) y:=Fmin; dyl:=(fmax-fmin)/5; repeat {горизонтальные линии сетки и подпись} Str(y:5:2,s); Image.Canvas.TextOut(x1+5, round(-(y-Fmin)*my)+ys+y1-6,s); Image.Canvas.MoveTo(x1+xs, round(-(y-Fmin)*my)+y1+ys);
- 94. Скачать презентацию


























![else begin MessageDlg('Недопустимые символы.',mtError, [mbOk], 0); end end end; procedure TMainForm.NextButtonClick(Sender: TObject);](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1148487/slide-27.jpg)



























































![Модуль Graphic Implementation Procedure Run; Var arr:array[1..200] of {координаты точек на холсте}](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1148487/slide-87.jpg)




Модель взаимодействия
Разбор задач ЕГЭ. Определение скорости передачи информации. В10
Внедрение программного обеспечения (лекция №7)
Структура проекта Delphi
Библиотека, как ресурс формирования гражданской и правовой культуры
Программирование на языке Паскаль
Носители информации (результаты анкетирования)
Структура каталогов операционных систем
Компьютерная помощница - мышь Урок 3. 5 класс
Язык запросов
Преобразование координат. Методическое указание для сотрудников УЗиМР
Толковый компьютерный словарь
Сетевое передающее оборудование
SimShop. Mobile version comment
Geometry Fin Interface
Komanda ATTRIB maina atribūtus failus un direktorijas
Логические основы компьютера
Решение задач в среде табличного процессора Excel
Программирование на языке C++
Практическая работа. Файлы и файловая структура
Библиографическое описание (БО)
Презентация на тему Алгоритм и алгоритмизация
Original graphic for inspiration
Опасности глобальной информатизации гуманитарной науки
4
嵌入式系统的Boot Loader技术
Классы эквивалентности
Диаметр, радиус и центр графа