酒杯上的碟
(the dish n kylix)
lx / usts ntrls / rss-platfr
作者: rbert kzak
翻译: akk
交叉平台控件(rss-platfr ntrls)
从inds到linux,或者相反
brland处在一个令人兴奋的时期.并不是自从delphi--这个brland的令人兴奋的产品的第一声.我正在谈论的当然是关于kylix,这个把++builder和delphi带到linux操作系统的项目.delphi版本将首先面世,所以在本文余下部分,kylix指的是delphi fr linux.
我们正在为delphi开发崭新的能够在inds和linux下工作的vl.这意味着你可以在inds下写一个应用程序,然后把源代码转移到linux下面重新编译--反之亦然.这个新的vl叫lx,意即"交叉平台控件库(pnent library rss-platfr)",lx包含整个随kylix发布的交叉平台库.在我写本文时它被分为下面四个子类:
baselx就是rtl,包含并且升级了lasses.pas
visuallx包含了用户界面类,比如常用的控件
datalx包含交叉平台的数据库控件
netlx包含internet部分,比如apahe等等..
在我写这篇文章的时候(2000年5月之前),kylix的第一部分测试已经正在进行了.当你读到这篇文章的时候,我正在使用的kylix和你将要看到的正式版本将会有很大不同.这为我的工作带来很多不便.是简单地谈一谈便罢?还是涉及一下底层的结构?我更倾向于详细的讨论,这样无论如何你能得到一点关于lx控件构造的头绪.但是要牢记一点: 当你阅读此文的时候,很可能这篇文章中很多细节的讨论已经改变了.
没有更接近的了(n ne else es lse)
这篇文章是关于写定制visuallx控件的初级读本.从本质上说,visuallx就是你所知道并热爱的vl.当你这样认为的时候,"可视构件库"(visual pnent library)有一点用词不当:还有比"可视构件"更多的东西.但是在这篇文章里面,我只谈论"可视"控件.类似buttn, edit, listbx, pagentrl, statusbar, prgressbar等等的控件,都已经在交叉平台下重新实现.但是目前的vl如此依赖inds,我们是怎么做到这些的呢?简单地说,我们剥离了所有的inds元素,然后把它们用别的工具包(tlkit)代替.
在linux下,有大量的工具包包含标准inds控件(如buttns).它们被称做"idgets".其中gtk和qt(被发音成"ute")就是两个非常流行的.qt是一个工作在inds和linux下的idgets,因为它非常接近我们的目标,所以qt被选择作为lx的基础.换句话说,qt和lx就好像inds api/通用控件和vl的关系.对于linux下的delphi的定制构件开发者来说,qt有一些明显的好处:
它是一个广泛使用的linux下的idgets集,被流行的kde桌面采用.
它的开发和inds api风格非常相似
它的图形模块和vl的图形模块相似
它的类看上去非常像vl控件
它引入大量标准idgets,并且具有消息循环
这将引发两个疑问:是否这意味着kylix只支持kde,而不支持其他的桌面(desktp)?比如gne?并且,以qt为基础的lx会给我带来多大影响? 第一个问题的回答是:kylix应用程序将运行在所有linux桌面下,特别是gne和kde. 本文的余下部分将回答第二个问题.
不让你返回(????)(dn''t ant yu bak)
我们的目标是让开发者容易地将应用程序转移到linux下,并且困难要最小化.大部分(新旧控件)的名字都是一样的,大部分的属性也是一样的.尽管有一些控件的少数属性去掉了,增加了一些新的属性,但对于绝大部分来说,应该可以平稳的转移你的应用程序.
对控件作者来说有一些不同. 对于一个新手,现在没有inds.pas了,也没有inds api了.你可以对essage标识和所有n,通知(ntifiatins)说再见了.这些都转换成了动态的(dynais)(???).在第一版中也不再有dk,bidi相关的方法/属性,输入法(ie),远东语言支持了.当然,更不会有ativex,或者le支持,inds 3.1控件也去掉了.
未完...点击下方链接下载完整文档