David I谈Delphi现状与未来
概要
自去年CodeGear被英巴卡迪诺(Embarcadero Technologies)收购后,大家对Delphi的未来发展非常关心。近日,InfoQ中文站有幸对David I进行了独家专访,以了解更多关于Delphi的相关信息。
个人简介
David Intersimone(简称David I),英巴卡迪诺负责开发者关系的副总裁和首席宣传官(Chief Evangelist)。David负责与开发者社区开展密切合作,确保CodeGear的战略产品规划满足广大开发者与开发团队的需求。
David本人是一位出色的软件开发者,充分发挥了开发者在软件业界的重要性。23年前,David作为产品服务经理加入到Borland,曾经担任过工程/开发类职位,创建了开发者关系部门。在加入Borland之前,他曾是Softsel Computer Products(即现在的Merisel公司)的产品服务经理。
David拥有加利福尼亚州州立理工大学的计算机科学学士学位。
David您好,很高兴接受InfoQ中文站的采访,您能给我们介绍一下您自己吗?
好的,我是David Intersimone,大家都叫我David I,现在是负责开发者项目和关系的副总裁、首席布道师,帮助全世界的开发者使用我们公司的各种产品。
您来中国已经很多次了,这次来给大家带来了什么新鲜的信息呢?
我这次过来主要是来访问一些客户,还有学生,想听一下他们对我们的产品有什么反馈,并且向他们宣传一下,因为过去我们是Borland和JBuilder,而现在我们是英巴卡迪诺公司,我们主要关注的是数据库工具和开发工具,还有其他的程序,编程的工具。我还有一个任务就是向我们的客户介绍一下我们的一个新产品叫All Access,如果我们的用户加入这个All Access项目就会得到一个通用注册号,可以使用17到18个产品,因为我们的客户可能是做编程,也可能是架构师,也可能是数据库的管理员,所以用户仍然可以选择分别购买我们的工具,也可以购买All access整个的工具包。
我们的读者大多数都是架构师和高级的开发人员,您想和我们分享那些资讯呢?
在英巴卡迪诺的公司旗下,我们有针对数据库架构师的产品名为ER Studio,用作数据库的建模工作,对于应用开发人员,我们也有IDE系列的UML模型来帮助他们进行开发。所以我们整个的数据库应用和数据库的设计方面都有相关的产品,可以帮助我们的用户,给他们提供最好的工具,来适应多框架以及多操作系统的环境。
您负责的EDN(Embarcadero Developer Network,http://edn.embarcadero.com/)上个月进行了改版,新版的EDN较以前做了哪些改进呢?
首先我们所做的是
相关文档:
delphi中Webbrowser的使用
1.获得网页中变量值
htm中<script> var currID=123</script>
程序中可以这么调用 id := Form1.WebBrowser1.OleObject.Document.script.currID
值得说明的是,变量可以是javascript定义的,也可以是vbs ......
用webbrowser控件登录和显示网页
MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素.MSHTML对象模型是由一些对象和集合组成的.处于根部的是HTML,描述了打开页面的1个窗口,包括一系列集合和对象。如Frames集合,History,Location,Navigat ......
Delphi 中WebBrowser控件详解实例 转
2008-05-07 12:07
很久都没有原创了,前几天帮朋友做了个网址发布程序,主要应用到了WebBrowser控件。
今天主要给大家演示一下过程,让大家学习一下Delphi工具。
WebBrowser功能:
1。自动加载网页
2。去除WebBrowser滚动条
3。WebB ......
procedure TForm1.Button2Click(Sender: TObject);
var
o : Olevariant;
begin
webbrowser1.Navigate('http://www.163.com');
delay(2000);
o := WebBrowser1.OleObject.document.all.item('username',0);
o.value := 'username';
o := W ......
procedure Delay(msecs:integer);
var
Tick: DWord;
Event: THandle;
begin
Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickCount + DWord(msecs);
while (msecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, msecs, QS_ALLINPUT) <&g ......