ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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>