http://tikitak.narod.ru ---- Главная страница сайта
Шаг 66 - Принцип работы Component Gallery
Создаем проект Win32 Console с именем Test1. Смотрим в окне FileView, там нет пока файлов. Нажмите правой кнопкой мыши на надписи Test1 files и выберите Add Files to Project. Появится окно Insert Files into Project в поле File Name введите имя файла test1.cpp и нажмите OK. В ответ на то, что файла нет и его нужно будет создавать Вам лучше согласиться, чтобы не повторять эти действия. Щелкните на Test1.cpp он должен будет появиться, Вас опять предупредят о его отсутствии, соглашайтесь :-). В файл добавьте код.
#include "iostream.h"
void main()
{
}
Теперь мы создадим класс, смысл которого будет простой. В него можно поместить число, а получить назад его квадрат. Тупо конечно. Но за то просто и не надо отвлекаться. Так что Вы меня простите за этот пример. Переходим в окно ClassView. Нажимаем правой кнопкой на test1 classes и выбираем пункт меню New Class. Заполняем его как на рисунке ниже, и нажимаем OK.
В Class View у Вас появится класс Ctest, а в FileView два файла - Test.cpp и Test.h. Возвращаемся в ClassView. Нажимаем правой кнопкой мыши на CTest, там где цветные квадратики и выбираем пункт меню Add Member Variable и заполняем, как на рисунке ниже, и кнопочку OK естественно.
У Вас появится переменная с ключиком в просмотре классов. Точно также, только воспользовавшись пунктом меню Add Member Function, добавьте две функции void SetX(it xx) и int GetX(). Только они должны быть Public.
Вот код
// Test.h: interface for the CTest class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TEST_H__9B5869C6_9415_11D3_A37A_000001260696__INCLUDED_)
#define AFX_TEST_H__9B5869C6_9415_11D3_A37A_000001260696__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
class CTest
{
public:
int GetX();
void SetX(int xx);
CTest();
virtual ~CTest();
protected:
int x;
};
#endif // !defined(AFX_TEST_H__9B5869C6_9415_11D3_A37A_000001260696__INCLUDED_)
// Test.cpp: implementation of the CTest class.
//
//////////////////////////////////////////////////////////////////////
#include "" // Это надо удалить
#include "Test.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CTest::CTest()
{
}
CTest::~CTest()
{
}
void CTest::SetX(int xx)
{
x=xx;
}
int CTest::GetX()
{
return x*x;
}
Измени наш test1.cpp
#include "iostream.h"
#include "test.h"
void main()
{
CTest ct;
ct.SetX(3);
cout << ct.GetX() << endl;
}
Запускайте и компилируйте. Если у Вас появилось окно с надписью, как ниже, значит наш пример готов.
9
Press any key to continue
ВНИМАНИЕ До этого была только подготовка. Приготовьтесь, теперь начнется самое важное.
Перейдите на окно ClassView. Выделите правой кнопкой мыши CTest и выберите пункт меню Add to Gallery. Диск немного пожурчит. Конечно он сохранил наш класс. Где ? Давайте смотрите Program Files -> DevStudio -> SharedIDE -> Gallery -> test1. Вот в этом каталоге находится наш класс в файле Test.ogx. Это и есть компонент.
Теперь как им пользоваться. Создавайте второй проект WIN 32 Console с именем Test2 и добавляйте файл Test2.cpp. Давайте добавим наш класс к проекту.
Появится выбор компонента. Зайдите в каталог Test1 и выберите файл Test.ogx. После этого Вас спросят вставлять его в проект. Соглашайтесь. Вот и готово. В ClassView появился класс, а в File View файлы. Вот так. Впишите код в Test2.cpp.
#include "iostream.h"
#include "test.h"
void main()
{
CTest ct;
ct.SetX(5);
cout << ct.GetX() << endl;
}
Компилируйте и запускайте.
Итак выводы. Мы создали класс. Создали из него компонент. DevStudio упаковал заголовочный файл и файл реализации в один с расширением ogx. Если класс для Windows и в нем будут ресурсы, то они тоже упакуются. После этого мы вставили компонент и к нашему файлу вписали только строку заголовка
#include "test.h"
Вобщем это можно считать реализацией концепции повторного использования. Конечно это очень простой пример. Но он демонстрирует возможности Component Gallery.
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|