Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Исходный код. Кафедра информационных технологий


Кафедра информационных технологий

И прикладной математики

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

 

к лабораторной работе №7 по дисциплине

«Программирование и алгоритмизация»

 

Группа: 3АУ-39Д

Студент: Чепиков И.С._______

Преподаватель: Артамкин С.Н. _______

 

 


Оглавление

Исходный код. 3

Диаграмма классов. 5

 


Исходный код

proxy.cpp

 

#include <vcl.h>

#include "main.h"

#include "canvas.h"

//---------------------------------------------------------------------------

// Subject. Абстрактный класс - объявляет интерфейс.

//---------------------------------------------------------------------------

class Graphic {

public:

virtual void CreateImg (AnsiString path) = 0;

virtual void ChangeSize (int h, int w) = 0;

virtual void DeleteImg () = 0;

};

 

//---------------------------------------------------------------------------

// Real Subject. Реализует интерфейс Graphic для отображения изображений:

//---------------------------------------------------------------------------

class Image: public Graphic {

public:

void CreateImg (AnsiString path)

{

gBitmap = new Graphics::TBitmap();

gBitmap->LoadFromFile(path);

TRect tRect(0,0,Form2->Width, Form2->Height);

Form2->Canvas->StretchDraw(tRect,gBitmap);

};

 

inline void ChangeSize (int w, int h)

{

TRect tRect(0,0,w,h);

Form2->Repaint();

Form2->Canvas->StretchDraw(tRect,gBitmap);

};

 

void DeleteImg ()

{

delete this->gBitmap;

gBitmap = NULL;

Form2->Refresh();

};

 

bool GetStat ()

{

if (this->gBitmap)

return true;

else

return false;

}

 

private:

Graphics::TBitmap* gBitmap;

};

 

//---------------------------------------------------------------------------

// Proxy. Имеет тот же интерфейс, что и Image:

//---------------------------------------------------------------------------

class ImageProxy: public Graphic {

public:

void CreateImg (AnsiString path)

{

img.CreateImg(path);

};

void ChangeSize (int h, int w)

{

img.ChangeSize(h, w);

};

void DeleteImg ()

{

img.DeleteImg();

};

 

bool GetStat ()

{

img.GetStat();

}

 

private:

Image img; // позволяет заместителю обратиться к реальному субъекту

};

//---------------------------------------------------------------------------

 

main.cpp

 

...

#include "proxy.cpp"

//---------------------------------------------------------------------------

TForm1 *Form1;

ImageProxy img_p;

...

//---------------------------------------------------------------------------

void __fastcall TForm1::OpenClick(TObject *Sender)

{

if (img_p.GetStat())

{

img_p.DeleteImg();

}

 

if (OpenDialog1->Execute())

{

img_p.CreateImg (OpenDialog1->FileName);

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::CloseClick(TObject *Sender)

{

if (img_p.GetStat())

{

img_p.DeleteImg();

}

}

//---------------------------------------------------------------------------

 

canvas.cpp

 

...

//---------------------------------------------------------------------------

void __fastcall TForm2::FormResize(TObject *Sender)

{

img_p.ChangeSize(Form2->Width, Form2->Height);

}

//---------------------------------------------------------------------------




<== предыдущая лекция | следующая лекция ==>
Исходный код | 

Дата добавления: 2015-06-15; просмотров: 366. Нарушение авторских прав; Мы поможем в написании вашей работы!




Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

Ваготомия. Дренирующие операции Ваготомия – денервация зон желудка, секретирующих соляную кислоту, путем пересечения блуждающих нервов или их ветвей...

Билиодигестивные анастомозы Показания для наложения билиодигестивных анастомозов: 1. нарушения проходимости терминального отдела холедоха при доброкачественной патологии (стенозы и стриктуры холедоха) 2. опухоли большого дуоденального сосочка...

Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва. Сосудистый шов применяется для восстановления магистрального кровотока при лечении...

Studopedia.info - Студопедия - 2014-2025 год . (0.008 сек.) русская версия | украинская версия