事实上它是Broland公司开发的一套FrameWork
soft10/tvision-0.6.tar.gz
该连接是详细说明。
电脑技术信息
Computer Technology Information
1999年 第10期 No.10 1999
--------------------------------------------------------------------------------
Turbo Vision编程中视图通讯问题初探
李振海
摘 要 本文探讨了Turbo Vision中视图间的数据通讯问题,并对Turbo Vision的事件机制做了简要介绍。
关键词 Turbo Vision 视图 数据通讯
1. 引言
Turbo Vision是一个完整的面向对象的函数库,它提供给用户一个窗口式的、面向对象的程序框架。Turbo Vision的两项主要内容是内置的窗口支持和事件处理,前者包括一系列有用的视图(菜单、对话框等),后者提供了事件驱动程序的设计方法,本文主要对用Turbo Vision进行事件驱动程序设计中视图间的通讯问题谈几点看法。
2. Turbo Vision的事件机制
事件是一个记录,它的核心是一个称作“What”的字类型域。What域的数字值描述事件的种类,事件记录的其它部分保存着有关该事件的特别的信息:击键事件的键扫描码,鼠标事件的位置信息和鼠标器按钮状态信息。事件有四种:鼠标事件(evMouse)、击键事件(ev-Key Down)、消息事件(evBroad Cast)、“空”事件(ev-Nothing)。每类事件都定义一掩码,对象能迅速判定发生的事件属于一般事件中的哪一类,例如判断一事件是否鼠标事件只须用下面一条语句,而不必依次判断是哪一种鼠标事件。
if Event.What and evMouse <> o then…
TApplication对象的Run方法通过对TGroup.Execute方法的调用,实现对事件的寻找、检查并建立事件记录,然后由Handle Event方法把事件传送到合适视图,事件的传递途径有三种:位置、聚焦点和“广播”事件。位置事件对应鼠标事件、聚焦事件对应击键事件或命令事件 (evCommand)、广播事件是“广播节目”(evBroadcast)或用户自定义的消息,视图间正是通过广播事件进行通讯的。
最后,大多数事件都以被转换成某种命令而结束,对位置事件和聚焦事件来说,对象通常产生一个命令以响应按鼠标键或击键操作,这是通过对Handle Event方法的调用来实现的。
3.视图间的通讯
Turbo Vision中的视图都是数据被封装起来的对象,它们间的数据传递问题,成为用Turbo Vision进行事件驱动设计中的难点。
视图之间是通过广播事件进行通讯的,通过下面一个程序,可以了解视图间是怎样进行通讯的。StdDlg单元包含一个TFileDialog会话框。视图TFile Dialog有一个TFile List子视图用来显示磁盘目录,在磁盘目录上方还有一个File Input Line子视图显示当前选取的要加载的文件名。每次用户在File List中选取另外一个文件时,FileList通知FileInputLine显示相应的文件名。
例:procedure TFileList.FocusItem(Item:Integer);
var
Event:TEvent;
begin
TSortedlistBox.FocusItem(Item);
Message(Top View,evBroadeast,cmFileFocused,list^.At(Item);
end;
procedure TFileInputLine.HandeEvent(var Event:TEvenent);
var
Name:NameSty;
begin
IInputLine.HandleEvext(Event);
if(Event.What=evBroadcast)and(Event.Command=cmFileFocused)and(State and sfSelected=0)then
begin
if PSearchRec(Event.Infoptr)^.Attr and Directong <> 0 then
kWww Flexiblemorgage Tag Cartoon Satire Flexible Mortgage turbo vision 是什么软件?就是turboC吗?? - C/C++ / C语言v s Flexible Mortgage Flexible Mortgage
zWww Flexiblemorgage Tag Cartoon Satire Flexible Mortgage turbo vision 是什么软件?就是turboC吗?? - C/C++ / C语言w o Flexible Mortgage Flexible Mortgage