第一部分 学习Turbo Vision 1
第一章 继承 2
1.1 窗口应用程序的骨架 2
1.2 一种开发应用程序的全新观点 2
1.3 Turbo Vision应用程序的要素 3
1.3.1 组件的命名 3
1.3.2 共同的外观与感觉 4
1.4 “Hello,World”的Turbo Vision风格 5
1.4.1 运行HELLO.PAS 5
1.4.2 下拉菜单 6
1.4.3 对话框 7
1.4.4 按钮 7
1.4.5 退出 7
1.5 HELLO.PAS程序的剖析 8
1.5.1 应用程序对象 8
1.5.2 对话框对象 9
1.5.3 运行过程与调试 9
1.5.4 HELLO.PAS的主程序 10
1.6 小结 11
第二章 编写Turbo Vision应用程序 12
2.1 第一个Turbo Vision程序 12
2.2 桌面、菜单条和状态行 13
2.2.1 桌面 14
2.2.2 状态行 14
2.2.3 菜单条 15
2.2.4 关于结构的说明 18
2.3 打开窗口 18
2.3.1 标准窗口设备 19
2.3.2 窗口初始化 20
2.4 窗口特性 21
2.4.1 浏览窗口 21
2.4.2 您看到了什么 23
2.4.3 一种好的编程方法 23
2.4.4 一个简单的文件观察区 24
2.4.5 带缓冲区的显示 25
2.4.6 一个窗口中的多个视口 29
2.5 创建一个对话框 32
2.5.1 执行一个模式对话框 34
2.5.2 控制 34
2.5.3 给控制加标号 38
2.5.4 输入行对象 39
2.5.5 设置和获取数据 39
2.5.6 捷径键和冲突 41
2.5.7 结束对话 42
2.6 其它对话框控制 43
2.6.1 静态正文 43
2.6.2 列表观察区 43
2.6.3 列表框 43
2.6.4 历史 43
2.7 标准对话框 43
第二部分 Turbo Vision程序设计 45
第三章 对象的层次结构 46
3.1 对象类型学 47
3.1.1 抽象对象 47
3.1.2 抽象方法 47
3.2 对象的实例和派生 48
3.2.1 例化 48
3.2.2 派生 48
3.3 Turbo Vision方法 48
3.3.1 抽象方法 48
3.3.2 伪抽象方法 49
3.3.3 虚方法 49
3.3.4 静态方法 49
3.4 Turbo Vision域 49
3.5 原始对象类型 50
3.5.1 TPoint 50
3.5.2 TRect 50
3.5.3 TObject 50
3.6 视口 51
3.6.1 视口概述 51
3.6.2 组 51
3.6.3 终端视口 52
3.7 不可见成分 54
3.7.1 流 54
3.7.2 资源 55
3.7.3 收集 55
3.7.4 字符串表 56
第四章 视口 57
4.1 我们已控制了TV 57
4.2 简单视口对象 57
4.2.1 建立视域 57
4.2.2 TPoint 58
4.2.3 TRect 58
4.2.4 Turbo Vision坐标 58
4.2.5 外貌 59
4.2.6 领域 59
4.2.7 根据需要显示 59
4.2.8 最佳效果 59
4.3 复杂视口 60
4.3.1 组和子视口 60
4.3.2 进入一个组 61
4.3.3 从另一个角度看Z次序 61
4.3.4 组肖像 62
4.3.5 视口之间的关系 62
4.3.6 子视口和视口树 64
4.4 选择视口和视口聚焦 66
4.4.1 找到焦点视口 67
4.4.2 怎样使视口成为焦点 67
4.4.3 焦点链 67
4.5 模式视口 68
4.6 修改缺省动作 68
4.6.1 Options标志字 69
4.6.2 GrowMode标志字节 70
4.6.3 DragMOde标志字节 71
4.6.4 根据状态改变的动作 72
4.7 视口的颜色 73
4.7.1 调色板 73
4.7.2 调色板内部 74
4.7.3 获取颜色(GetColor)方法 75
4.7.4 覆盖缺省颜色 75
4.7.5 增加新颜色 76
第五章 事件驱动程序设计 77
5.1 Turbo Vision新的开端 77
5.1.1 读进用户输入 77
5.2 事件的性质 78
5.2.1 事件的种类 78
5.2.2 事件和命令 79
5.3 事件的传递 79
5.3.1 事件从哪里来? 80
5.3.2 事件要到哪里去 80
5.3.3 屏蔽事件 81
5.3.4 阶段 82
5.4 命令 83
5.4.1 定义命令 83
5.4.2 连接命令 84
5.4.3 开放和屏蔽命令 84
5.5 处理事件 84
5.6 事件记录 85
5.6.1 清除事件 86
5.6.2 废弃事件 86
5.7 修改事件机制 87
5.7.1 集中的事件采集 87
5.7.2 覆盖GetEvent 87
5.7.3 利用空闲时间 88
5.8 视口间的通讯 88
5.8.1 媒介 88
5.8.2 视口间的消息 89
5.8.3 谁处理广播? 90
5.8.4 调用HandleEvent方法 91
第六章 编写安全的程序 92
6.1 全编程和空编程 92
6.1.1 安全池 92
6.1.2 非存储空间错误 94
6.1.3 主要消费者 95
第七章 收集 96
7.1 收集对象 96
7.1.1 收集是动态变长的 96
7.1.2 收集是多态的 96
7.1.3 类型检查与收集 96
7.2 创建收集 97
7.3 循环程序方法 98
7.3.1 ForEach循环程序 99
7.3.2 First和LastThat循环程序 99
7.4 排序收集 100
7.5 字符串收集 101
7.5.1 再谈循环程序 102
7.6 多态收集 103
7.7 收集和存储管理 105
第八章 流式文件 106
8.1 问题:I/O对象 106
8.2 答案:流 106
8.2.1 流是多态的 106
8.2.2 流处理对象 107
8.3 流的基本应用 107
8.3.1 建立一个流 107
8.3.2 流的读写 108
8.3.3 关闭流 108
8.4 使对象流化 109
8.4.1 装载和存储方法 109
8.4.2 流登录 110
8.4.3 登录 110
8.5 流机制 111
8.5.1 存入过程 111
8.5.2 取出过程 111
8.6 流的收集:一个完整的例子 111
8.6.1 加入Store方法 112
8.6.2 登录记录 113
8.6.3 登录 113
8.6.4 流的写入 114
8.7 谁来储存? 114
8.7.1 子视口实例 115
8.7.2 同辈视口实例 115
8.8 储存和装载桌面 116
8.9 拷贝流 116
8.10 随机存取流 117
8.11 流中的非对象 117
第九章 资源 118
9.1 为何要使用资源? 118
9.2 资源中有什么? 118
9.3 生成资源 118
9.4 读入资源 119
9.5 字符串表 120
9.5.1 生成字符串表 121
第十章 提示和忠告 122
10.1 调试Turbo Vision程序 122
10.1.1 它执行不到这里 122
10.1.2 不执行期望的东西 123
10.1.3 死机现象 123
10.2 将应用程序移值到Turbo Vision中 123
10.2.1 提炼旧代码 123
10.2.2 重新考虑组织结构 124
10.3 使用位映象域 124
10.3.1 标志值 125
10.3.2 位掩码 125
10.3.3 位按操作 125
10.4 小结 126
第三部分 Turbo Vision参考 127
第十一章 如何使用“Turbo Vision参考” 128
11.1 如何找到所需的消息 128
11.2 对象的一般特性 128
11.3 命名的一些约定 128
第十二章 单元交叉表 130
12.1 Objects单元 130
12.1.1 类型 130
12.1.2 对象类型 130
12.1.3 常量 131
12.1.4 集合的最大长度 132
12.1.5 集合的出错码 132
12.1.6 变量 132
12.1.7 过程和函数 132
12.2 Views单元 132
12.2.1 类型 132
12.2.2 常量 133
12.2.3 变量 135
12.2.4 函数 136
12.3 Dialogs单元 136
12.3.1 类型 136
12.3.2 常量 136
12.3.4 过程和函数 136
12.4 App单元 137
12.4.1 类型 137
12.4.2 变量 137
12.5 Menus单元 137
12.5.1 类型 137
12.5.2 过程和函数 138
12.6 Drivers单元 138
12.6.1 类型 138
12.6.2 常量 138
12.6.3 变量 140
12.6.4 过程和函数 141
12.7 TextView单元 143
12.7.1 类型 143
12.7.2 过程 143
12.8 Memory单元 143
12.8.1 变量 143
12.8.2 过程和函数 143
12.9 HistList单元 144
12.9.1 变量 144
12.9.2 过程和函数 144
第十三章 对象参考 145
示例对象[对象所在单元] 145
TApplication[App] 146
TBackground[App] 147
TBufStream[Objects] 148
TButton[Dialogs] 150
TCheckBoxes[Dialogs] 153
TCluster[Dialogs] 154
TCollection[Objects] 158
TDeskTop[App] 163
TDialog[Dialogs] 164
TDosStream[Objects] 166
TEmsStream[Objects] 168
TFrame[Views] 169
TGroup[Views] 171
THistory[Dialogs] 178
THistoryViewer[Dialogs] 179
THistoryWindow[Dialogs] 181
TInpuLine[Dialogs] 182
TLabel[Dialogs] 185
TListBox[Dialogs] 187
TListViewer[Views] 189
TMenuBar[Menus] 192
TMenuBox[Menus] 194
TMenuView[Menus] 195
TObject[Objects] 197
TParamText[Dialogs] 198
TPoint[Objects] 199
TProgram[App] 200
TRadioButtons[Dialogs] 205
TRect[Objects] 207
TResourceFile[Objects] 208
TResourceCollection[Objects] 208
TScrollBAr[Views] 210
TScroller[Views] 213
TSortedCollection[Objects] 216
TStaticText[Dialogs] 217
TStatusLine[Menus] 219
TStream[Objects] 221
TStringCollection[Objects] 224
TStringList[Objects] 225
TStrListMaker[Objects] 226
TTerminal[TextView] 227
TTTextDevice[TextView] 230
TView[Views] 231
Windows[Views] 244
第十四章 总参考 249
示例过程[过程所在单元] 249
Abstract过程[Objects] 249
Application变量[App] 249
AppPlalette变量[App] 249
apXXXX常量[App] 249
AssignDevice过程[TextView] 250
bfXXXX常量[Dialogs] 250
ButtonCount变量[Drivers] 250
CheckSnow变量[Drivers] 251
ClearHistory过程[HistList] 251
ClearScreen过程[Drivers] 251
cmXXXX常量[Views] 251
coXXXX常量[Objects] 254
CStrLen函数[Drivers] 254
CtrlBreakHist变量[Drivers] 254
CtrToArrow函数[Drivers] 254
CursorLines变量[Drivers] 255
DeskTop变量[App] 255
DisposeMenu过程[Menus] 255
DisposeStr过程[Objects] 255
dmXXXX常量[Views] 256
DoneEvents过程[Drives] 256
DoneHistory过程[HistList] 256
DoneMemory过程[Memory] 257
DoneSysError过程[Drivers] 257
DoneVideo过程[Drivers] 257
DoubleDelay常量[Drvers] 257
EmsCurHandle变量[Objects] 257
EmsCurPage变量[Objects] 258
evXXXX常量[Drivers] 258
FNameStr类型[Object] 259
FocusedEvents变量[Views] 259
FormatStr过程[Dirvers] 259
FreeBufMem过程[Memory] 261
GetAltChar函数[Drivers] 261
GetAltCode函数[Drivers] 261
GetBufMem过程[Memory] 261
GetKeyEvent过程[Drivers] 262
GetMouseEvent过程[Drivers] 262
gfXXXX常量[Views] 262
heXXXX常量[Views] 263
HideMouse过程[Drivers] 263
HiResScreen变量[Drivers] 263
HistoryAdd过程[HistList] 264
HistoryBlock变量[HistLIst] 264
HistoryCount函数[HistList] 264
HistorySize变量[HisList] 264
HistoryStr函数[HisList] 264
HistoryUsed变量[HistList] 264
InitEvents过程[Drivers] 265
InitHistory过程[HistList] 265
InitMemory过程[Memory] 265
InitSysError过程[Drivers] 265
InitVideo过程[Drivers] 265
kbXXXX常量[Drivers] 266
LongDiv函数[Objects] 268
LogMul函数[Objects] 268
LongRec类型[Objects] 268
LowMemory函数[objects] 269
LowMemSize变量[Memory] 269
MaxButMem变量[Memory] 269
MaxCollectionSize变量[Objects] 269
MaxViewWidth常量[Views] 269
mbXXXX常量[Drivers] 269
MemAlloc函数[Memory] 270
MemAllocSeg函数[Memory] 270
MenuBar变量[App] 270
Message函数[Views] 270
MinWinSize变量[Views] 271
MouseBufton变量[Drivers] 271
MouseEvents变量[Drivers] 271
MouseIntFlg变量[Drivers] 271
MouseWhere变量[Drivers] 271
MoveBuf过程[Objects] 272
MoveChar过程[Objects] 272
MoveCStr过程[Objects] 272
MoveStr过程[Objects] 272
NewItem函数[Menus] 273
NewLine函数[Menus] 273
NewSItem函数[Dialogs] 273
NewStatusDef函数[Menus] 273
NewStatusKey函数[Menus] 273
NewStr函数[Objects] 274
NewSubMenu函数[Menus] 274
OfXXXX常量[Views] 274
PChar类型[Objects] 275
PositionalEvents变量[Views] 276
PrintStr过程[Drivers] 276
PString类型[Objects] 276
PtrRec类型[Obbjects] 276
RegisterDialogs过程[Dialogs] 276
RegisterType[Objects] 276
RepeatDelay变量[Drivers] 277
SaveCtrBreak变量[Drivers] 277
sbXXXX常量[Views] 277
ScreenBuffer常量[Drivers] 278
ScreenHeight变量[Drivers] 278
ScreenMode变量[Drivers] 278
ScreenWidth常量[Drivers] 279
SelectMode类型[Views] 279
SetVideMode过程[Drivers] 279
sfXXXX常量[Views] 279
ShadowAttr变量[Views] 281
ShadowSize变量[Views] 281
ShowMarkers变量[Drivers] 281
ShowMouse过程[Drivers] 281
smXXXX常量[Drivers] 281
SpecialChars变量[Views] 282
stXXXX常量[Objects] 282
StartupMode变量[Drivers] 282
StatusLine变量[App] 283
StreamError变量[Objects] 283
SysColorAttr变量[Drivers] 283
SysErrActive变量[Drivers] 283
SysErrorFunc变量[Drivers] 283
SysMonoAttr变量[Drivers] 284
SystemError函数[Drivers] 284
TByteArray类型[Objects] 285
TCommandSet类型[Views] 285
TDrawBuffer类型[Views] 285
TEvent类型[Drivers] 286
TItemList类型[Objects] 286
TMenu类型[Menus] 286
TMenuItem类型[Menus] 286
TMenuStr类型[Menus] 287
TPalette类型[Views] 287
TScrollChars类型[Views] 287
TSItem类型[Dialogs] 287
TStatusDef类型[Menus] 287
TStatusItem类型[Menus] 288
TStreamRec类型[Objects] 288
TStrIndex类型[Objects] 289
TStrIndexRec类型[Objects] 289
TSysErrorFunc类型[Drivers] 289
TTerminalBuffer类型[TextView] 289
TTitleStr类型[Views] 290
TVideoBuf类型[Views] 290
TWordArray类型[Objects] 290
wfXXXX常量[Views] 290
WnNoNumber常量[Views] 291
WordRec类型[Objects] 291
wpXXXX常量[Views] 291