Файл: Лабораторная работа 20 ознакомление с ооп.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 20

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Министерство науки и высшего образования Российской Федерации

Федерального государственного бюджетного образовательного учреждения высшего образования

Московский государственный технический университет имени Н.Э. Баумана

(национальный исследовательский университет)

Московский техникум космического приборостроения

ЛАБОРАТОРНАЯ РАБОТА №20

ОЗНАКОМЛЕНИЕ С ООП

Специальность: 09.02.07 Информационные системы и программирование — квалификация «Программист»

Группа ТИП-41



Проверил

И. А. Тамахина

Разработал

В. А. Давтян

Москва 2023

СОДЕРЖАНИЕ

1 Постановка задачи 2

2 Интерфейс программы 3

3 Листинг программы 4

3.1 Листинг Unit3.......................................................................4

3.2 Листинг Unit32.....................................................................9

4 Результат программы 12

1 Постановка задачи

На форме расположить следующие компоненты: Panel, Image, Memo,OpenPictureDialog, FontDialog, Open Dialog, ColorDialog, 3 PopupMenu, BitBtn. PopupMenu компонента Image должно содержать пункт вызова окна OpenPictureDialog. PopupMenu компонента Memo должно содержать пункты вызова окна FontDialog и Open Dialog. PopupMenu формы должно содержать пункт вызова окна ColorDialog. Создать форму-заставку к данному приложению. При выборе изображения с помощью компонента OpenPictureDialog в компоненте Image должно отображаться выбранное изображение, одновременно с этим в компоненте Memo должна отображаться информация, соответствующая выбранному изображению. И наоборот, при выборе информационного файла с помощью компонента OpenDialog в компоненте Memo должна выводиться информация из выбранного файла и одновременно в Image загружаться изображение, соответствующее выбранному текстовому файлу. Кроме того, с помощью ColorDialog должна быть предусмотрена смена цвета формы, а с помощью FontDialog, изменение настроек Memo. Так же предусмотреть «перелистывание» изображений и описаний изображений слева направо и справа налево. Каждый визуальный компонент должен быть снабжен всплывающей подсказкой. Напишите программу, использующую 7 изображений. Сделать задание на тему «Семь чудес России».


2 Интерфейс программы





Р исунок 2.1 – Начальный интерфейс программы

Рисунок 2.2 – Основной интерфейс программы

3 Листинг программы

3.1 Листинг Unitlaba3

unit unitlaba3;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtDlgs, ExtCtrls, Menus, Buttons, StdCtrls;

type

{ TForm1 }

TForm1 = class(TForm)

Button1: TBitBtn;

Button2: TBitBtn;

Button3: TBitBtn;

Button4: TBitBtn;

Button5: TBitBtn;

Button6: TBitBtn;

Button7: TBitBtn;

Button8: TBitBtn;

ColorDialog1: TColorDialog;

FontDialog1: TFontDialog;

Image1: TImage;

ListBox1: TListBox;

Memo1: TMemo;

MenuItem1: TMenuItem;

MenuItem2: TMenuItem;

MenuItem3: TMenuItem;

MenuItem4: TMenuItem;

OpenDialog1: TOpenDialog;

OpenPictureDialog1: TOpenPictureDialog;

Panel1: TPanel;

PopupMenu1: TPopupMenu;

PopupMenu2: TPopupMenu;

PopupMenu3: TPopupMenu;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

private

public

end;

var

Form1: TForm1;

implementation

{$R *.lfm}

uses unitlaba32;

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);

begin

if ColorDialog1.Execute then Panel1.Color:=ColorDialog1.Color;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

if OpenPictureDialog1.Execute then begin

Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

Memo1.Lines.LoadFromFile(copy(OpenPictureDialog1.FileName,1,(pos('.', OpenPictureDialog1.FileName)-1))+'.txt');

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if FontDialog1.Execute then Memo1.Font:=FontDialog1.Font;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

if (OpenDialog1.FileName='') and (OpenPictureDialog1.FileName='') then

begin

showmessage('Выберите изображение или текст');

exit;

end;

If OpenDialog1.FileName='' then OpenDialog1.FileName:=OpenPictureDialog1.FileName;

ListBox1.Items.LoadFromFile('C:\Users\Vlad\Desktop\j\list.txt');

if (ListBox1.Items.IndexOf(copy(OpenDialog1.FileName,1,(pos('.', OpenDialog1.FileName)-1)))-1)<0 then

begin

Image1.Picture.LoadFromFile(listbox1.Items[6]+'.jpg');

Memo1.Lines.LoadFromFile(listbox1.Items[6]+'.txt');

OpenDialog1.FileName:=listbox1.Items[6]+'.txt';

end

else

begin

Image1.Picture.LoadFromFile(listbox1.Items[ListBox1.Items.IndexOf(copy(OpenDialog1.FileName,1,(pos('.', OpenDialog1.FileName)-1)))-1]+'.jpg');

Memo1.Lines.LoadFromFile(listbox1.Items[ListBox1.Items.IndexOf(copy(OpenDialog1.FileName,1,(pos('.', OpenDialog1.FileName)-1)))-1]+'.txt');

OpenDialog1.FileName:=listbox1.Items[ListBox1.Items.IndexOf(copy(OpenDialog1.FileName,1,(pos('.', OpenDialog1.FileName)-1)))-1]+'.txt';

end;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

if (OpenDialog1.FileName='') and (OpenPictureDialog1.FileName='') then

begin

showmessage('Выберите изображение или текст');

exit;

end;

If OpenDialog1.FileName='' then OpenDialog1.FileName:=OpenPictureDialog1.FileName;

ListBox1.Items.LoadFromFile('C:\Users\Vlad\Desktop\j\list.txt');

if (ListBox1.Items.IndexOf(copy(OpenDialog1.FileName,1,(pos('.', OpenDialog1.FileName)-1)))+1)>=ListBox1.Items.Count then

begin

Image1.Picture.LoadFromFile(listbox1.Items[0]+'.jpg');

Memo1.Lines.LoadFromFile(listbox1.Items[0]+'.txt');

OpenDialog1.FileName:=listbox1.Items[0]+'.txt';

end

else

begin

Image1.Picture.LoadFromFile(listbox1.Items[ListBox1.Items.IndexOf(copy(OpenDialog1.FileName,1,(pos('.', OpenDialog1.FileName)-1)))+1]+'.jpg');

Memo1.Lines.LoadFromFile(listbox1.Items[ListBox1.Items.IndexOf(copy(OpenDialog1.FileName,1,(pos('.', OpenDialog1.FileName)-1)))+1]+'.txt');

OpenDialog1.FileName:=listbox1.Items[ListBox1.Items.IndexOf(copy(OpenDialog1.FileName,1,(pos('.', OpenDialog1.FileName)-1)))+1]+'.txt';

end;

end;

procedure TForm1.Button8Click(Sender: TObject);

begin

if OpenDialog1.Execute then begin

Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

Image1.Picture.LoadFromFile(copy(OpenDialog1.FileName,1,(pos('.', OpenDialog1.FileName)-1))+'.jpg');

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

procedure TForm1.FormShow(Sender: TObject);

begin

form2.showmodal;

end;

end.

3.2 Листинг Unitlaba32

unit unitlaba32;

{$mode ObjFPC}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, Buttons;

type

{ TForm2 }

TForm2 = class(TForm)

Image1: TImage;

Timer1: TTimer;

procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);

procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Image1Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

public

end;

var

Form2: TForm2;

implementation

uses unitlaba3;

{$R *.lfm}

{ TForm2 }

procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

close;

end;

procedure TForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction);

begin

form2.hide;

end;

procedure TForm2.Timer1Timer(Sender: TObject);

begin

close;

end;

procedure TForm2.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

close;

end;

procedure TForm2.Image1Click(Sender: TObject);

begin

end;

end.

4 Результат выполнения программ



Р исунок 4.1 – Выборка Чуда России по фото

Рисунок 4.2 – Выборка Чуда России по тексту



Рисунок 4.3 – Изменение Чуда России фона



Рисунок 4.4 – Изменение шрифта в Memo



Рисунок 4.5 – Обработка ошибки «не выбрано изображение или текст»

0>