Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РУКОВОДСТВО TURBO VISION ДЛЯ C++ TV Turbo Visio...doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
5.2 Mб
Скачать

Глава 15. Стандартные диалоговые окна

-----------------------------------------------------------------

Глава описывает расширение Turbo Vision, предоставляющее

большое количество стандартных возможностей по созданию панелей

диалога.

TChDirDialog STDDLG.H

-----------------------------------------------------------------

┌─────────┐

│ TDialog │

└────┬────┘

╔══════╧═══════╗

║ TChDirDialog ║

╚══════════════╝

TChDirDialog - это панель диалога с меткой "Смена каталога".

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

Окна протокола и списка каталогов с вертикальной прокруткой пре-

доставляют соответственно предыдущие выборы каталогов и дерево

всех доступных каталогов. Выбор пунктов осуществляется обычным

способом управления подсветкой с помощью клавиатуры или "мыши". В

панели отображаются следующие опции:

Directory name

Directory tree

OK(по умолчанию)

Chdir

Revert

Help

TChDirDialog::handleEvent посылает соответствующие команды

для каждого выбора.

TDirListBox является дружественным классом для TChDirDialog,

поэтому методы TDirListBox имеют доступ к полям TChDirDialog:

setUpDialog, dirInput, dirList, okButton и chDirButton.

Константы команд

------------------------------------------------------------

Следующие команды посылаются TChDirDialog:

Таблица 15.1 Команды TChDirDialog.

------------------------------------------------------------

Константа Значение Назначение

------------------------------------------------------------

cmChangeDir 1005 посылается, когда выбрано Chdir.

cmRevert 1006 посылается, когда выбрано Revert

------------------------------------------------------------

Turbo Vision для С++ = 42 =

Методы TChDirDialog

------------------------------------------------------------

Конструктор

TChDirDialog(ushort aOptions, ushort histId);

Cоздает диалоговый объект для смены каталога с данным

идентификатором протокола (ID). aOptions может принимать следую-

щие значения:

■cdNormal: - опция немедленного использования диалога.

■cdNoLoadDir: - опция инициализации диалога без загрузки те-

кущего каталога в диалог. Применяется, если вы намеревае-

тесь используя setData перезагрузить каталог, или сохранить

в потоке.

■cdHelpButton: - опция помещения кнопки помощи в диалог.

Конструктор создает и размещает объект TInputLine (с меткой

"Directory ~n~ame"), объект THistory, список с вертикальной прок-

руткой, объект TDirListBox (с меткой "Directory ~t~ree") и три

кнопки ("O~K~", "~C~hdir", "~R~evert"). Если aOptions имеет набор

флагов cdHelpButton, то создается четвертая кнопка помощи. Если

не выбрана опция cdNoLoadDir то панель диалога загружается с те-

кущим каталогом.

Метод build

static TStreamable *build();

Вызывается для создания объектов при некоторых ситуациях

чтения из потока.

См. также TStreamableClass, ipstream::readData

Метод dataSize

virtual ushort dataSize();

По умолчанию dataSize возвращает 0. Переопределяется для

возвращения размера данных (в байтах), используемых getData и

setData для запоминания и поиска входных данных панели диалога.

См. также: TView::dataSize, TView::setData, TView::getData

Метод getData

Turbo Vision для С++ = 43 =

virtual void getData(void *rec);

По умолчанию getData ничего не делает. Переопределяется для

копирования dataSize байт из отображаемого объекта в rec. Исполь-

зуется в комбинации с dataSize и setData для запоминания и поиска

входных данных панели диалога.

См. также: TView::dataSize, TView::setData, TView::getData

Метод handleEvent

virtual void handleEvent(TEvent& event);

Вызывает TDialog::handleEvent затем обрабатывает события

cmRevert (восстанавливает предыдущий текущий каталог) и

сmChangeDir (переключает на выбранный каталог). Если необходимо

панель диалога перерисовывается.

См. также: TDialog::handleEvent

Метод read

virtual void *read(ipstream& os);

Читает из входного потока is.

Cм. также: TStreamableClass, ipstream

Метод setData

virtual void setData(void *rec);

По умолчанию setData ничего не делает. Переопределяется для

копирования байтов dataSize из отображаемого объекта в rec. Ис-

пользуется в комбинации с методами dataSize и setData для запоми-

нания и поиска входных данных панели диалога.

См. также: TView::dataSize, TView::setData, TView::getData

Метод shutDown

virtual void shutDown();

Используется методом TObject::destroy для обеспечения кор-

ректного уничтожения производных и родственных объектов. Метод

shutDown переопределяется во многих классах для обеспечения пра-

вильного установления родственных полей когда вызывается destroy.

См. также: Глава 6, "Написание надежных программ"

Turbo Vision для С++ = 44 =

Метод valid

virtual Boolean valid(ushort command);

Возвращает значение True, если command отлична от cmOK. Если

кнопка OK "нажата", valid проверяет введенную строку и возвращает

True для правильного каталога. Неправильный каталог вызывает окно

с сообщением "неправильный каталог" и возвращает False.

См. также: TDialog::valid

Метод write

virtual void write(opstream& os);

Записывает в выходной поток os.

См. также: TStreamableClass, opstream

Родственные функции

------------------------------------------------------------

Некоторые функции-операции родственны TChDirDialog, но не

являются методами.

Turbo Vision для С++ = 45 =

TDirCollection STDDLG.H

-----------------------------------------------------------------

┌─────────────┐

│ TCollection │

└──────┬──────┘

╔═══════╧════════╗

║ TDirCollection ║

╚════════════════╝

Класс TDirCollection является простым наследником класса

TCollection используемым для хранения объектов TDirEntry.

TDirCollection - это потоковый класс, наследующий TStreamable из

его базового класса.

Методы TDirCollection

-------------------------------------------------------------

Конструктор

TDirCollection(ccIndex aLimit, ccIndex aDelta) :

TCollection(aLimit, aDelta);

Вызывает базовый конструктор TCollection для создания кол-

лекции каталогов с данными limit и delta.

См. также: TCollection::TCollection

Метод at

TDirEntry *at(ccIndex index);

Возвращает указатель на объект TDirEntry, вставленный в дан-

ную коллекцию каталогов в позицию index.

См. также: TNSCollection::at

Метод atInsert

void atInsert(ccIndex index, TDirEntry *item);

Помещает данный элемент в коллекцию в позицию index и смеща-

ет последующие элементы вниз на одну позицию. Если будет превыше-

но значение limit, коллекция будет расширена на delta.

См. также: TNSCollection::atInsert

Метод atPut

void atPut(ccIndex index, TDirEntry *item);

Заменяет элемент в позицию index на данный элемент item.

Turbo Vision для С++ = 46 =

См. также: TNSCollection::atPut

Метод build

static TStreamable *build();

Вызывается для создания объектов при некоторых ситуациях

чтения из потока.

См. также: TStreamableClass, ipstream::readData

Метод firstThat

TDirEntry *firstThat(ccTestFunc Test, void *arg);

Этот итератор возвращает указатель на первый объект

TDirEntry в коллекции, для которого функция Test возвращает True.

Смотрите описание TNSCollection::firstThat для детального объяс-

нения.

См. также: TDirCollection::lastThat

Метод free

void free(TDirEntry *item);

Удаляет данный элемент из коллекции и освобождает место в

коллекции.

См. также: TNSCollection::free, TNSCollection::remove

Метод indexOf

virtual ccIndex indexOf(TDirEntry *item);

Возвращает позицию index данного элемента item в данной кол-

лекции каталогов.

См. также: TNSCollection::indexOf

Метод insert

virtual ccIndex insert(TDirEntry *item);

Вставляет элемент item в коллекцию (набор) и при необходи-

мости корректирует индексы. По умолчанию вставка производится в

конец коллекции. Возвращается индекс вставленного элемента.

См. также: TNSCollection::insert

Метод lastThat

Turbo Vision для С++ = 47 =

TDirEntry *lastThat(ccTestFunc Test, void *arg);

Этот итератор просматривает коллекцию от последнего

объекта TDirEntry к первому. Он возвращает указатель на первый

(т.е. ближайший к концу) элемент набора для которого функция Test

возвращает True. Для подробного объяснения смотрите метод

TNSCollection::lastThat.

См. также: TDirCollection::firstThat

Метод read

virtual void *read(ipstream& os, void * t);

Считывает из входного потока is.

См. также: TStreamableClass, ipstream

Метод readItem

void *TDirCollection::readItem( ipstream& is );

Вызывается для каждого элемента в коллекции. Нуждается в пе-

реопределении всех производных от TCollection или

TSortedCollection для корректного чтения элементов.

TSortedCollection переопределяет эту функцию.

См. также: TStreamableClass, TStreamable, ipstream

Метод remove

void remove(TDirEntry *item);

Удаляет данный элемент item из коллекции. (Место в коллекции

не освобождается).

См. также: TNSCollection::remove, TNSCollection::free

Метод write

virtual void write(opstream& os);

Записывает в выходной поток os.

См. также: TStreamableClass, opstream

Метод writeItem

void TDirCollection::writeItem( void *obj, opstream& os );

Вызывается для каждого элемента в коллекции. Для корректной

записи элементов нуждается в переопределении всех порожденных от

TCollection или TSortedCollection классов. TSortedCollection уже

Turbo Vision для С++ = 48 =

переопределяет эту функцию.

См. также: TStreamableClass, TStreamable, opstream

Родственные функции

------------------------------------------------------------

Некоторые функции-операции родственны TDirCollection, но не

являются методами.

Turbo Vision для С++ = 49 =

TDirEntry STDDLG.H

-----------------------------------------------------------------

╔═════════════╗

║ TDirEntry ║

╚═════════════╝

Класс TDirEntry - это простой класс, обеспечивающий описания

и маршруты каталогов. Объекты TDirEntry хранятся в объектах

TDirCollection. TDirEntry имеет два поля, доступных через методы

dir и text.

Методы TDirEntry

------------------------------------------------------------

Метод constructor

TDirEntry(const char *txt, const char *dir);

inline TDirEntry::TDirEntry((const char *txt, const char *dir) :

displayText(newStr(txt)), directory(newStr(dir))

Метод dir

char *dir();

Возвращает текущий каталог (значение поля directory).

Метод text

char *text();

Возвращает текущий отображаемых текст (значение поля

displayText).

Turbo Vision для С++ = 50 =

TDirListBox STDDLG.H

-----------------------------------------------------------------

┌─────────┐

│ TView │

└────┬────┘

┌───────┴────────┐

│ TListViewer │

└───────┬────────┘

┌─────┴──────┐

│ TListBox │

└─────┬──────┘

╔════════╧════════╗

║ TDirListBox ║

╚═════════════════╝

Класс TDirListBox является наследником TListBox и специали-

зируется на отображении и выборе каталогов хранящихся в объектах

TDirCollection. По умолчанию эти каталоги отображаются в виде од-

ного столбца с вертикальной прокруткой.

Методы TDirListBox

------------------------------------------------------------

Конструктор

TDirListBox(const TRect& bounds, TScrollBar *aScrollBar);

Для создания списка с вертикальной прокруткой в форме одного

столбца в данных границах вызывает метод

TListBox::TListBox(bounds, 1, aScrollBar)

См. также: TListBox::TListBox

Метод destructor

~TDirListBox();

Вызывает свой базовый деструктор для удаления окна со спис-

ком.

Метод build

static TStreamable *build();

Вызывается для создания объектов при некоторых ситуациях

чтения из потока.

См. также: TStreamableClass, ipstream::readData

Метод getText

virtual void getText(char *dest, short item, short maxLen);

Turbo Vision для С++ = 51 =

Считывает строку текста с индексом item и копирует ее в

dest.

Метод handleEvent

virtual void handleEvent(TEvent& event);

С помощью метода putEvent(cmChangeDir) обрабатывает событие от

"мыши" (двойное нажатие кнопки). Это позволяет с помощью двойного

нажатия переключаться на выбранный каталог. Другие события обра-

батываются TListBox::handleEvent.

См. также: TView::putEvent, TListBox::handleEvent

Метод isSelected

virtual Boolean isSelected(short item);

Возвращает значение True если выбран элемент item, в против-

ном случае возвращает False.

Метод list

TDirCollection *list();

Возвращает указатель на объект TDirCollection связанный с

данным окном списка каталогов.

См. также: TSortedListBox::list

Метод newDirectory

void newDirectory(const char *);

Удаляет существующий объект TDirEntry связанный с данным

оконным списком и заменяет его на коллекцию файлов данный в

aList. Первый элемент в коллекции будет активизирован.

См. также: TSortedListBox::newList

Метод read

virtual void *read(ipstream& os);

Читает из входного потока is.

См. также: TStreamableClass, ipstream

Метод setState

virtual void setState(ushort aState, Boolean enable);

Turbo Vision для С++ = 52 =

По умолчанию использует метод, унаследованный от

TListViewer::setState.

См. также: TListViewer::setState

Метод write

virtual void write(opstream& os);

Записывает в выходной поток os.

См. также: TStreamableClass, opstream

Родственные функции

------------------------------------------------------------

Некоторые функции-операции родственны TDirListBox, но не яв-

ляются методами.

Turbo Vision для С++ = 53 =

TFileCollection STDDLG.H

-----------------------------------------------------------------

┌───────────────────┐

│ TSortedCollection │

└─────────┬─────────┘

╔═════════╧═════════╗

║ TFileCollection ║

╚═══════════════════╝

TFileCollection является простым наследником TSorted-

Collection дающим отсортированную коллекцию имен файлов. Имена

файлов хранятся как объекты типа TSearchRec, определенного следу-

ющим образом:

struct TSearchRec

{

uchar attr;

long time;

long size;

char name[MAXFILE+MAXEXT-1];

};

Поля TSearchRec имеют свое обычное DOS-значение. Дисковод

и маршрут каталога обрабатываются объектами TDirEntry раздельно.

Методы TFileCollection

------------------------------------------------------------

Метод constructor

TFileCollection(ccIndex aLimit, ccIndex aDelta) :

TSortedCollection(aLimit, aDelta) {}

Вызывает базовый конструктор TSortedCollection для создания

коллекции с данными limit и delta.

См. также: TSortedCollection::TSortedCollection

Метод at

TSerchRec *at(ccIndex index)

Возвращает указатель на объект TSearhRec, вставляемый по по-

зиции index в данную коллекцию файлов.

См. также: TNSCollection::at

Метод atInsert

void atInsert(ccIndex index, TSearchRec *item)

Вставляет файл TSearchRec, на который ссылается элемент item

в коллекцию по данному индексу index и сдвигает последующие эле-

Turbo Vision для С++ = 54 =

менты на одну позицию вниз. Если вставка нового элемента вызовет

превышение значения limit, коллекция будет расширена на delta.

См. также: TNSCollection::atInsert

Метод atPut

void atPut(ccIndex index, TSerchRec *item)

Заменяет файл TSearchRec, находящийся по позиции index на

указанном элементе item.

См. также: TNSCollection::atPut

Метод build

static TStreamable *build();

Вызывается для создания объектов при некоторых ситуациях

чтения их потока.

См. также: TStreamableClass, ipstream::readData

Метод compare ("частный")

virtual int compare(void *key1, void *key2);

Выполняет стандартное строковое сравнение файлов и возвраща-

ет значение в зависимости от результатов.

■Возвращает 0, если имена файлов key1 и key2 одинаковы.

■Возвращает > 0,

* Если имя key1 лексикографически больше key2

* Если имя key1 есть каталог ".."

* Если имя key1 есть каталог, а key2 не каталог

■Возвращает < 0,

* Если имя key1 лексикографически меньше key2

* Если key2 ссылается на каталог ".."

* Если key2 есть каталог, а key1 не каталог.

См. также: TSortedCollection::compare

Метод firstThat

TSearchRec *firstThat(ccTestFunc Test, void *arg);

Этот итератор возвращает указатель на первый объект

TSearchRec в коллекции, для которого функция Test возвращает зна-

чение True. Для детального пояснения смотрите

TNSCollection::firstThat.

Turbo Vision для С++ = 55 =

См. также: TFileCollection::lastThat

Метод free

void free(TSearchRec *item)

Удаляет данный файловый элемент TSearchRec из коллекции и

освобождает место в коллекции.

См. также: TNSCollection::free, TNSCollection::remove

Метод indexOf

virtual ccIndex indexOf(TSearchRec *item)

Возвращает индекс index данного файлового элемента

TSearchRec в данной коллекции файлов.

См. также: TNSCollection::indexOf

Метод insert

virtual ccindex insert(TSearchRec *item)

Вставляет TSearchRec item в коллекцию и при необходимости

корректирует индексы. По умолчанию вставка производится в конец

коллекции. Возвращается индекс вставленного элемента.

См. также: TNSCollection::insert

Метод lastThat

TSearchRec *lastThat(ccTestFunc Test, void *arg);

Этот итератор просматривает коллекцию от последнего

объекта TDirEntry к первому. Он возвращает указатель на первый

(т.е. ближайший к концу) элемент коллекции для которого функция

Test возвращает значение True. Смотрите TNSCollection::lastThat

для детального объяснения.

См. также: TFileCollection::firstThat

Метод read

virtual void *read(ipstream& os);

Считывает из входного потока is.

См. также: TStreamableClass, ipstream

Метод readItem

Turbo Vision для С++ = 56 =

void *TFileCollection::readItem( ipstream& is );

Вызывается для каждого элемента в коллекции. Для корректного

чтения элементов нуждается в переопределении.

См. также: TStreamableClass, TStreamable, ipstream

Метод remove

void remove(TSearchRec *item)

Удаляет данный файловый элемент TSearchRec из коллекции фай-

лов. (Место в коллекции не освобождается).

См. также: TNSCollection::remove, TNSCollection::free

Метод write

virtual void write(opstream& os);

Пишет в выходной поток os.

См. также: TStreamableClass, opstream

Метод writeItem

void TFileCollection::writeItem( void *obj, opstream& os );

Вызывается для каждого элемента в коллекции. Нуждается в пе-

реопределении для корректной записи элементов.

См. также: TStreamableClass, TStreamable, opstream

Родственные функции

------------------------------------------------------------

Некоторые функции-операции родственны TFileCollection, но не

являются методами.

Turbo Vision для С++ = 57 =

TFileDialog STDDLG.H

-----------------------------------------------------------------

┌─────────┐

│ TDialog │

└────┬────┘

╔══════╧══════╗

║ TFileDialog ║

╚═════════════╝

TFileDialog исполняет файловую панель диалога, список прото-

кола, строку ввода, в которой могут быть введены, отредактирова-

ны, выбраны или открыты для редактирования имена файлов (включая

полное имя файла).

Опции

------------------------------------------------------------

Эти опции выполняют специфические операции.

Таблица 15.2 Опции TFileDialog.

------------------------------------------------------------

Константа Значение Назначение

------------------------------------------------------------

fdOKButton 0x0001 Помещает в панель диалога кнопку OK.

fdOpenButton 0x0002 Помещает в панель диалога кнопку Open.

fdReplaseButton 0x0004 Помещает в панель диалога кнопку Replase.

fdClearButton 0x0008 Помещает в панель диалога кнопку Clear.

fdHelpButton 0x0010 Помещает в панель диалога кнопку Help.

fdNoLoadDir 0x0100 Не загружайте содержимого текущего

каталога в панель диалога при инициали-

зации, т.к. это будет означать, что вы

намереваетесь изменить полное имя файла

используя setData или записать диалог в

потоке.

------------------------------------------------------------

Командные константы

------------------------------------------------------------

Следующие команды возвращаются TFileDialog:

Turbo Vision для С++ = 58 =

Таблица 15.3 Командные константы TFileDialog.

--------------------------------------------------------------

Константа Значение Назначение

--------------------------------------------------------------

cmFileOpen 1001 Посылается, когда нажата кнопка Open.

cmFileReplase 1002 Посылается, когда нажата Replase.

cmFileClear 1003 Посылается, когда нажата кнопка Clear.

cmFileInit 1004 используется методом

TFileDialog::valid.

--------------------------------------------------------------

Поля

------------------------------------------------------------

Поле directory

const char *directory;

Содержит текущий каталог.

Поле fileList

TFileList *fileList;

Указатель на ассоциированный список файлов.

См. также TFileList

Поле fileName

TFileInputLine *fileName;

Указатель на ассоциированную строку ввода.

См. также TFileInput

Поле wildCard

char wildCard[MAXPATH];

Текущие дисковод, маршрут и имя файла.

Методы TFileDialog

------------------------------------------------------------

Конструктор

TFileDialog(const char *aWildCard, const char *aTitle, const

char *inputName, ushort aOptions, uchar histId);

Создает панель диалога фиксированного размера с рамкой и

указанным заголовком. Объект TFileInputLine (на который ссылается

поле fileName) с заголовком inputName и с полем data установлен-

ным в WildCard создается и вставляется. Аргумент маршрута расши-

ряется (если необходимо) для обеспечения объекта TFileList, на

который ссылается поле fileList. Создается и вставляется объект

THistory с данным идентификатором протокола (ID). Также создается

и вставляется список с вертикальной прокруткой. В зависимости от

флагов aOptions устанавливаются присваивающие кнопки (см. выбор

опций в TFileDialog). Создается и вставляется объект

TFileInfoPane. Если не установлен флаг fdNoLoadDir, то файлы те-

кущего каталога загружаются в список файлов.

См. также: TDialog::TDialog, TFileInputLine::TFileInputLine,

TFileList::TFileList,THistory::THistory

Метод destructor

~TFileDialog();

Удаляет directory, затем уничтожает диалог.

Метод build

static TStreamable *build();

Вызывается для создания объектов при некоторых ситуациях

чтения из потока.

См. также: TStreamableClass, ipstream::readData

Метод getFileName

void getFileName(char *s);

Считывает поле fileName->data и расширяет его до формата

полного пути. Результат устанавливается в значение s.

Метод handleEvent

virtual void handleEvent(TEvent& event);

Вызывает TDialog::handleEvent, а затем обрабатывает события

cmFileOpen, cmFileReplace и cmFileClear. Все они вызывают

endModal и передают свои команды отображаемому объекту, который

открыл панель диалога.

См. также: TDialog::handleEvent, TView::endModal

Метод read

virtual void *read(ipstream& os);

Считывает из входного потока is.

См. также: TStreamableClass, ipstream

Метод shutDown

virtual void shutDown();

Используется методом TObject::destroy для обеспечения кор-

ректного уничтожения порожденных и родственных объектов. Для

обеспечения соответствующего установления родственных методов

когда вызывается метод destroy, метод shutDown во многих классах

переопределяется.

См. также: Глава 6, "Написание надежных программ".

Метод valid

virtual Boolean valid(ushort command);

Возвращает True, если command есть cmValid, указывая на пра-

вильную конструкцию. В противном случае вызывает метод

TDialog::valid. Если он возвращает True, то текущее fileName про-

веряется на правильность. Правильные имена возвращают True. Неп-

равильные имена вызывают оконное сообщение "неправильное имя фай-

ла" и возвращают False.

См. также: TDialog::valid

Метод write

virtual void write(opstream& os);

Записывает в выходной поток os.

См. также: TStreamableClass, opstream

Родственные функции

------------------------------------------------------------

Некоторые функции-операции родственны TFileDialog, но не яв-

ляются методами.

Turbo Vision для С++ = 61 =

TFileInfoPane STDDLG.H

-----------------------------------------------------------------

┌───────┐

│ TView │

└───┬───┘

╔═══════╧═══════╗

║ TFileInfoPane ║

╚═══════════════╝

TFileInfoPane - простой потоковый отображаемый объект для

отображения информации о файле в соответствующем окне файлового

диалога.

Поля

------------------------------------------------------------

Поле file_block

TSearchRec file_block;

Имя и атрибуты файла для этого инфоэлемента. TSearchRec оп-

ределена следующим образом:

struct TSearchRec

{

uchar attr;

long time;

long size;

char name[MAXFILE+MAXEXT-1];

};

где поля имеют свое обычное DOS файловое значение.

Методы TFileInfoPane

------------------------------------------------------------

Конструктор

TFileInfoPane(const TRect& bounds);

Вызывает метод TView::TView(bounds) для создания файлового

инфоэлемента с данными границами bounds. Поле evBroadcast прини-

мает значение eventMask.

Метод build

static TStreamable *build();

Вызывается для создания объектов при некоторых ситуациях

чтения из потока.

См. также: TStreamableClass, ipstream::readData

Метод draw

virtual void draw();

Отображает инфоэлемент файла с палитрой, принятой по умолча-

нию. Отображаются размер файла и дата/время.

Метод getPalette

virtual TPalette& getPalette() const;

Возвращает палитру cpInfoPane="\x1E" принятую по умолчанию.

Метод handleEvent

virtual void handleEvent(TEvent& event);

Вызывает метод TView::handleEvent, затем обрабатывает пере-

даваемые cmFileFocused события (срабатывает, когда активизируется

новый файл в списке файлов), отображая инфоэлемент файла.

См. также: TView::handleEvent, команды TFileList

Метод read

virtual void *read(ipstream& os);

Считывает из входного потока is.

См. также: TStreamableClass, ipstream

Метод write

virtual void write(opstream& os);

Записывает в выходной поток os.

См. также: TStreamableClass, opstream

Родственные функции

------------------------------------------------------------

Некоторые функции-операции родственны TFileInfoPane, но не

являются методами.

TFileInputLine STDDLG.H

-----------------------------------------------------------------

┌───────┐

│ TView │

└───┬───┘

┌─────┴──────┐

│ TInputLine │

└─────┬──────┘

╔════════╧═══════╗

║ TFileInputLine ║

╚════════════════╝

TFileInputLine реализует специализированную строку ввода

TInputLine позволяющую редактировать имена файлов, включая необя-

зательные маршруты и полные имена. Объект TFileInputLine ассоции-

рован с файловой панелью диалога.

Методы TFileInputLine

------------------------------------------------------------

Конструктор

TFileInputLine(const TRect& bounds, short aMaxLen);

Вызывает метод TInputLine::TInputLine(bounds, aMaxLen) для

создания строки ввода файлов с данными границами и максимальной

длиной maxLen. evBroadcast устанавливается в значение eventMask.

См. также: TInputLine::TInputLine

Метод build

ctatic TStreamable *build();

Вызывается для создания объектов при некоторых ситуациях

чтения из потока.

См. также: TStreamableClass, ipstream::readData

Метод handleEvent

virtual void handleEvent(TEvent& event);

Вызывает TInputLine::handleEvent, затем обрабатывает переда-

ваемые cmFileFocused события копируя, введенное имя файла в стро-

ку ввода поля data и перерисовывая объект. Если редактируемое имя

является каталогом, то текущее имя файла в объекте TFileDialog

размещается первым.

См. также: TInputLine::handleEvent

Метод read

virtual void *read(ipstream& os);

Считывает из входного потока is.

См. также: TStreamableClass, ipstream

Метод write

virtual void write(opstream& os);

Записывает в выходной поток os.

См. также: TStreamableClass, opstream

Родственные функции

------------------------------------------------------------

Некоторые функции-операции родственны TFileInfoPane, но не

являются методами.

TFileList STDDLG.H

-----------------------------------------------------------------

┌────────┐

│ TView │

└───┬────┘

┌──────┴──────┐

│ TListViewr │

└──────┬──────┘

┌────┴─────┐

│ TListBox │

└────┬─────┘

┌───────┴────────┐

│ TSortedListBox │

└───────┬────────┘

╔═════╧══════╗

║ TFileList ║

╚════════════╝

TFileList реализует окно с отсортированным в два столбца

списком имен файлов (содержащихся в объекте TFileCollection). Вы

можете выбрать имя файла с помощью "мыши" или клавиатуры. Доступ-

на вертикальная прокрутка. TFileList наследует функции класса

TSortedListBox.

Константы команд

------------------------------------------------------------

Следующие общие команды посылаются TFileList:

Таблица 15.4 Константы команд TFileList.

------------------------------------------------------------

Константа Значение Назначение

------------------------------------------------------------

cmFileFocused 102 Новый файл был активизирован в

объекте TFileList.

cmFileDoubleClicked 103 Файл был выбран в объекте TFileList.

------------------------------------------------------------

Методы TFileList

------------------------------------------------------------

Конструктор

TFileList(const TRect& bounds, const char *aWildCard,

TScrollBar *aScrollBar);

Вызывает конструктор TSortedListBox для создания двухстолб-

цового объекта TFileList c данными границами bounds и, если

aScrollBar не ноль, строкой вертикальной прокрутки. Аргумент

aWildCard - это строка с дисководом, маршрутом, файлом и расшире-

нием (стандартное имя файла DOS расширяется, если присутствует)

из которого вызовом readDirectory посылается коллекция файлов.

Метод destructor

~TFileList();

Уничтожает список файлов.

Метод build

static TStreamable *build();

Вызывается для создания объектов при некоторых ситуациях

чтения из потока.

См. также: TStreamableClass, ipstream::readData

Метод focusItem

virtual void focusItem(short item);

Активизирует данный элемент в списке. Вызывает метод

TSortedListBox::focusItem и посылает общее событие cmFileFocused.

См. также: TSortedListBox::focusItem

Метод getText

virtual void getText(char *dest, short item, short maxLen);

Считывает объект TSearchRec в item и устанавливает имя файла

в dest. "\\" присоединяется если имя есть каталог.

Метод handleEvent

virtual void handleEvent(TEvent& event);

Наследует обработчик событий TSortedListBox без модификаций,

обрабатывает все нормальные события окна со списком: выбор и

подсветка имени файла "мышью" или клавиатурой.

См. также: TSortedListBox::handleEvent,TListBox::handleEvent

Метод list

TFileCollection *list();

Возвращает локальное поле items, указатель на объект

TFileCollection ассоциированный с данным списком файлов.

См. также: TSortedListBox::list, TListBox::items

Метод newList

void newList(TFileCollection *aList);

Вызывает метод TSortedListBox::newList для уничтожения су-

ществующего объекта TFileCollection ассоциированного с данным

оконным списком и замены его коллекцией файлов, заданных парамет-

ром aList. Первый элемент в новой коллекции будет активизирован.

См. также: TSortedListBox::newList

Метод read

virtual void *read(ipstream& os);

Читает из входного потока is.

См. также: TStreamableClass, ipstream

Метод readDirectory

void readDirectory(const char *dir, const char *wildCard);

void readDirectory(const char *wildCard);

Расширяет строку wildCard для генерации коллекции файлов ас-

социированного с данным списком файлов. Первая форма позволяет

раздельно передавать относительный и абсолютный маршруты в аргу-

менте dir. Как '/' так и '\' могут быть использованы в качестве

разделителей подкаталогов (но '/' преобразуется в '\'). Результи-

рующий объект TFileCollection (отсортированное множество объектов

TSearchRec) присваивается полю items (доступному через метод

list). Если включено слишком много файлов, то появляется предуп-

реждающее сообщение. readDirectory знает об атрибутах файла и не

будет включать имена скрытых файлов.

См. также: TFileList::TFileList

Метод write

virtual void write(opstream& os);

Пишет в выходной поток os.

См. также: TStreamableClass, opstream

Родственные функции

------------------------------------------------------------

Некоторые функции-операции родственны TFileList, но не явля-

ются методами.

Turbo Vision для С++ = 68 =

TSortedListBox STDDLG.H

-----------------------------------------------------------------

┌──────────┐

│ TListBox │

└─────┬────┘

╔════════╧═══════╗

║ TSortedListBox ║

╚════════════════╝

TSortedListBox - специализированный потомок класса TListBox,

располагающий элементы в отсортированную последовательность. Это

используется как база для других классов оконных списков, таких

как TFileList.

Методы TSortedListBox

------------------------------------------------------------

Конструктор

TFileList(const TRect& bounds, ushort aNumCols,

TScrollBar *aScrollBar);

Вызывает метод TListBox::TListBox(bounds, aNumCols,

aScrollBar) для создания оконного списка данного размера, с дан-

ным количеством столбцов и вертикальной прокруткой элементов.

shiftState устанавливается в 0 и курсор устанавливается на первый

элемент.

Метод getKey

virtual void *getKey(const char *s); "частный"

Вы должны переопределять этот метод во всех порожденных

классах для обеспечения средств возвращения ключа для данной

строки s. Это будет зависеть от стратегии сортировки, принятой в

ваших порожденных классах. По умолчанию getKey возвращает s.

Метод handleEvent

virtual void handleEvent(TEvent& event);

Вызывает TListBox::handleEvent, затем обрабатывает события

специальных клавиш и события от "мыши", используемые для выбора

элементов в списке.

См. также: TListBox::handleEvent

Метод list

TSortedCollection *list();

Возвращает указатель на объект TSortedCollection ассоцииро-

ванный со списком окна сортировки. Это дает доступ к локальному

Turbo Vision для С++ = 69 =

полю items, указателю элементов подлежащих размещению в списке и

выбору. Порожденные классы окон сортировки со списком обычно пе-

реопределяют list для обеспечения указателя на объекты классов,

порожденных от TSortedCollection. Например TFileList::list возв-

ращает указатель на объект TFileCollection, определяемый методом

TFileList::items.

См. также: TSortedListBox::list, TListBox::list, TFileList::list

Метод newList

void newList(TSortedCollection *aList);

Вызывает TListBox::newList для удаления существующего

TSortedCollection объекта с данным оконным списком и замены его

коллекцией данных в aList. Первый элемент в коллекции будет акти-

визирован.

См. также: TListBox::newList