
- •Часть 1. Введение в turbo vision...............................14
- •Глава 1. Наследование велосипеда...............................14
- •Глава 2. Разработка прикладных программ с использованием
- •Часть 2. Глава 3. Иерархия классов..........................88
- •Глава 4. Отображаемые элементы................................108
- •Глава 5. Программирование, управляемое событиями..............143
- •Глава 6. Разработка надежных программ.........................170
- •Глава 7. Коллекции............................................177
- •Глава 8. Объекты, хранимые с потоками.........................199
- •Глава 9. Ресурсы..............................................211
- •Часть 1. Введение в turbo vision
- •Глава 1. Наследование велосипеда
- •Глава 2. Разработка прикладных программ
- •Часть 2. Глава 3. Иерархия классов
- •Глава 4. Отображаемые элементы
- •Глава 5. Программирование, управляемое событиями
- •Глава 6. Разработка надежных программ
- •Глава 7. Коллекции
- •Глава 8. Объекты, хранимые с потоками
- •Глава 9. Ресурсы
- •Глава 10. Дополнительная информация....................................5
- •Часть 3. Справочник по turbo vision...................................13
- •Глава 11. Как использовать справочник.................................13
- •Глава 12. Заголовочные файлы turbo vision.............................16
- •Глава 13. Справочник по классам.......................................35
- •Глава 10. Дополнительная информация
- •Часть 3. Справочник по turbo vision
- •Глава 11. Как использовать справочник
- •Глава 12 описывает различные заголовочные файлы Turbo
- •Глава 16 описывает в алфавитном порядке все глобальные конс-
- •Глава 12. Заголовочные файлы turbo vision
- •Глава 13. Справочник по классам
- •Глава 14. Классы редактора......................................6
- •Глава 15. Стандартные диалоговые окна..........................41
- •Глава 16. Глобальный справочник................................70
- •Глава 14. Классы редактора
- •Глава 15. Стандартные диалоговые окна
- •Глава 16. Глобальный справочник
Глава 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