9.1.2. Пояснения к программе

Заголовочный файл owl\edit.h содержит описание класса TEdit и его членов-функций.

Класс TMyWin описывает прикладное окно. В классе определен указатель на объект TEdit, используемый для ссылки на член-функции элемента редактирования.

Конструктор TMyWin создает однострочную панель редактирования. Первый аргумент конструктора TEdit равен this. Это привязывает панель редактирования к прикладному окну. Конструктору также передается текст, который будет изначально размещен в панели редактирования.

Дополнительно в окне приложения размещается кнопка, при нажатии которой текст из буфера редактора переписывается в строку с именем txt. Для этого вызывается GetLine. Первый параметр функции - указатель на строку, в которую требуется переписать текст строки из редактора, второй аргумент - длина переписываемой строки, третий аргумент - номер копируемой из элемента редактирования строки. Функция отклика на нажатия кнопки объявляет о необходимости перерисовки главного окна. Это приводит к тому, что Paint выводит текст, скопированный в txt в окно приложения. После запуска приложения Вы можете изменить текст в элементе редактирования, а затем нажать на кнопку. В результате все изменения в редакторе будут отображены в окне приложения.

9.1.3. Задание

1) Создайте и исследуйте приложение.

2) Поместите в окно приложения еще одну панель редактирования. После нажатия на кнопку приложение должно выводить в свое окно строки из первой и второй панели редактирования.

9.2. Использование многострочного текстового редактора для ввода и редактирования текста.

 

Нижеприведенное Windows-приложение использует многострочную панель редактирования текста.

9.2.1. Исходный текст программы

#include <owl\applicat.h>

#include <owl\framewin.h>

#include <owl\edit.h>

#include <owl\button.h>

#include <owl\dc.h>

#define ID_MULTILINER 150

#define CM_BUTTON 160

class TMyWin: public TFrameWindow

 {

 TEdit *multiLiner;

 char *txt;

 public:

TMyWin(): TFrameWindow(0,"the TEdit object")

{

 - multiLiner=new TEdit(this,ID_MULTILINER,"Input lines",10,10,200,100,0,TRUE);

 - new TButton(this,CM_BUTTON,"Update",10,130,70,25);

}

 protected:

void CmButton();

void Paint(TDC&,BOOL,TRect&);

 DECLARE_RESPONSE_TABLE(TMyWin);

 };

 DEFINE_RESPONSE_TABLE1(TMyWin,TFrameWindow)

EV_COMMAND(CM_BUTTON,CmButton),

 END_RESPONSE_TABLE;

 void TMyWin::CmButton()

{

Invalidate();

//UpdateWindow();

}

void TMyWin::Paint(TDC& dc,BOOL,TRect&)

{

 - for (int i=1;i<=multiLiner->GetNumLines();i++)

 - {

 - int lineLength= multiLiner->GetLineLength(i-1);

 - txt= new char[lineLength];

 - multiLiner->GetLine(txt,lineLength,i-1);

 - dc.TextOut(250,50+i*20,txt);

 - delete txt;

 - }

}

 class TMyApp:public TApplication

 {

public:

TMyApp(): TApplication(){};

void InitMainWindow()

 - {

 - MainWindow=new TMyWin();

 - }

};

 int OwlMain(int,char *[])

{

return TMyApp().Run();

}

9.2.2. Задание

1) Сравните листинги программ, приводимые в 9.2.1 и в 9.1.1, уделив особое внимание на различия в конструировании однострочной и многострочной панелей редактирования.

2) Создайте и выполните приложение.

3) Создайте элемент меню прикладного окна, вызывающий однострочный или многострочный элемент редактирования.

9.3. Немного английского

to edit - редактировать

GetLine - to get a line - получить строку

GetLineLength - to get a line length - получить длину строки

10. Приложение. Классы библиотеки OWL.

10.1. Иерархия классов библиотеки OWL, используемых в пособии

10.2. Класс TApplication

 Производный от класса TModule. Используется для порождения класса для объекта-приложения Windows.

Класс TApplication содержит 7 членов-данных и 35 членов-функций, из которых в данном пособии используются:

10.2.1. Член-данное:

TFrameWindow *MainWindow; - - public

Указатель на главное окно приложения.

10.2.2. Член-функции:

virtual void InitApplication(); - - protected

Выполняет любую инициализацию, необходимую только для первого экземпляра приложения. По умолчанию InitApplication ниего не выполняет.

virtual void InitInstance(); - - - protected

Выпоняется для каждого экземпляра приложения. InitInstance вызывает InitMainWindow, а затем создает и высвечивает на экране главное окно путем вызова соответственно TWindow::Create и TWindow::Show.

virtual int Run(); - - - public

Инициализирует экземпляр приложения, вызывая InitApplication для первого экземпляра и InitInstance для всех остальных. Если инициализация прошла успешно, Run вызывает MessageLoop и запускает приложение.

virtual void InitMainWindow(); - - protected

По умолчанию InitMainWindow создает обобщенный объект - главное окно с именем приложения в качестве заголовка. Для создания требуемого главного окна необходимо переопределить InitMainWindow, не забыв сделать ссылку в MainWindow на созданное главное окно (класса TFrameWindow).

TAplication( const far*name=0); - - public

Этот конструктор создает объект класса TApplication.

name - указатель на имя приложения.

Этот конструктор используется в теле функции OwlMain.


Информация о работе «Borland C++ для Windows»
Раздел: Информатика, программирование
Количество знаков с пробелами: 59535
Количество таблиц: 0
Количество изображений: 13

Похожие работы

Скачать
25316
2
1

... автоматизации, которые не описаны в интерфейсе IDispatch. Var Object: Variant; Object := CreateOleObject('Word.Application'); Использование экземпляра сервера автоматизации, то есть вызов его методов, осуществляется с помощью конструкций, обычных для вызова методов в Delphi: <Ссылка на сервер>.<Название метода>(<Список параметров>); Однако механизм, используемый для ...

Скачать
16146
2
10

... требования: Процессор – Pentium 400 MHz. Оперативная память – 512 Mb. Жесткий диск – 10 Gb. Операционная система – Windows XP Professional Программное обеспечение – Borland Database Engine. 2. Разработка рабочего проекта 2.1  Разработка программы Программа, моделирующая игру «Нечет» и «Чет» разработана на языке Object Pascal в визуальной среде Delphi 6. Проект содержит одно окно- ...

Скачать
133101
1
9

... мире. Внутренняя схема - это сама база данных. Отсюда вытекают основные этапы, на которые разбивается процесс проектирования базы данных информационной системы: Концептуальное проектирование - сбор, анализ и редактирование требований к данным. Для этого осуществляются следующие мероприятия: обследование предметной области, изучение ее информационной структуры выявление всех фрагментов, каждый ...

Скачать
46945
2
0

... из контекстного меню или из меню Run, закрыть приложение и лишь затем вносить изменения в проект. В этом случае уменьшится вероятность потери ресурсов Windows. Компоненты Borland C++ Builder Выбор компонентов для групповых операций Для эффективной разработки пользовательских интерфейсов приложений C++ Builder нередко возникает необходимость в манипулировании компонентами на формах. ...

0 комментариев


Наверх