转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
使用IntraWeb进行Web编程(二)         ★★★★

使用IntraWeb进行Web编程(二)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1716 更新时间:2009/4/23 18:35:17

《Delphi从入门到精通》第21章  第二部分

创建IntraWeb应用程序

创建IntraWeb应用程序,有很多组件可用。不妨看一下Delphi组件板中的IW Standard页,会给您留下深刻的印象,从简单的按钮、复选框、单选框、编辑框、列表框到迷人的树形控件、菜单、计时器、表格和链接应有尽有。我不想举例描述每个组件的用法,只想通过几个例子,阐述IntraWeb的体系结构,当然顺便也会介绍用到的组件。

我创建了一个例程(叫IWTree),演示了IntraWeb的菜单和树形控件的用法,同时也说明了如何动态创建组件。IntraWeb菜单通过引入常规Delphi菜单内容来工作的,这很容易,只需简单地把AttachedMenu设置成Tmenu组件即可:

object MainMenu1: TMainMenu
  object Tree1: TMenuItem
    object ExpandAll1: TMenuItem
    object CollapseAll1: TMenuItem
    object N1: TMenuItem
    object EnlargeFont1: TMenuItem
    object ReduceFont1: TMenuItem
  end
  object About1: TMenuItem
    object Application1: TMenuItem
    object TreeContents1: TMenuItem
  end
end
object IWMenu1: TIWMenu
  AttachedMenu = MainMenu1
  Orientation = iwOHorizontal
end

菜单项运行时处理OnClick事件,是以链接形式实现的。看一下图21.3,这是展示菜单的例程的运行效果。例程中的另外一个组件是树形控件,在例子中预置了很多节点。该组件通过很多JavaScript代码来实现在浏览器中(不需要调用服务器代码)直接控制树形控件节点的展开和收叠。同时,菜单中还有控制树形控件节点展开和收叠以及控制字体大小的菜单项。下面列出其中两个事件代码:

procedure TformTree.ExpandAll1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to IWTreeView1.Items.Count - 1 do
    IWTreeView1.Items [i].Expanded := True;
end;
   
procedure TformTree.EnlargeFont1Click(Sender: TObject);
begin
  IWTreeView1.Font.Size := IWTreeView1.Font.Size + 2;
end;

图21.3 演示菜单、树形控件和动态创建组件的例程

感谢IntraWeb提供了如同标准Delphi VCL组件的特性,使代码易读,也容易理解。

 

例程中的菜单有两个子菜单稍微复杂一点。第一个是显示应用程序ID,也就是程序执行时的会话期ID。该标志可以通过全局对象WebApplication的AppID属性获得。第二个子菜单是Tree Contents,它可以把树形控件的一级节点标题和子节点数目清单列出。值得注意的是,这些信息显示在一个运行时才创建的组件memo里(见图21.3),这一点与在一个VCL应用程序里面做同样的事情非常相似。

procedure TformTree.TreeContents1Click(Sender: TObject);
var
  i: Integer;
begin
  with TIWMemo.Create(Self) do
  begin
    Parent := Self;
    Align := alBottom;
    for i := 0 to IWTreeView1.Items.Count - 1 do
      Lines.Add (IWTreeView1.Items [i].Caption + '''' ('''' +
        IntToStr (IWTreeView1.Items [i].SubItems.Count) + '''')'''');
  end;
end;
 
提示:请注意IntraWeb的alignment属性和VCL组件的alignment非常相似。比如程序菜单的alignment属性是alTop,而tree组件则是alClient,此外动态创建的memo的alignment属性被设为alBottom。作为替代方法,可以使用anchors(同样VCL中也有):可以创建一个bottom-right按钮,或者在页面中间的组件,只需把组件的四个anchors全设为true。请看下面关于该技术的例程。

Writing Multipage Applications

开发多页面应用程序

目前所讲的例程都只有一个页面,下面我们来创建IntraWeb程序的第二个页面。其实,就是这种情况,IntraWeb开发工具也与标准Delphi(或Kylix)十分相似,而与其他互联网开发工具十分不同。下面的例子可以通过IntraWeb向导自动产生源代码,接着研究我们关心的这些代码。

我们从头看,例程IWTwoForms的主窗体演示了IntraWeb表格特性。这是一个强大的组件,她产生的HTML表格既可放入文本又可放入其他组件。在本例中,程序开始运行时,填充表格的内容(在主窗体的OnCreate事件中处理):

procedure TformMain.IWAppFormCreate(Sender: TObject);
var
  i: Integer;
  link: TIWURL;
begin
  // set grid titles
  IWGrid1.Cell[0, 0].Text := ''''Row'''';
  IWGrid1.Cell[0, 1].Text := ''''Owner'''';
  IWGrid1.Cell[0, 2].Text := ''''Web Site'''';
  // set grid contents
  for i := 1 to IWGrid1.RowCount - 1 do
  begin
    IWGrid1.Cell [i,0].Text := ''''Row '''' + IntToStr (i+1);
    IWGrid1.Cell [i,1].Text := ''''IWTwoForms by Marco Cantù'''';
    link := TIWURL.Create(Self);
    link.Text := ''''Click here'''';
    link.URL := ''''http://www.marcocantu.com'''';
    IWGrid1.Cell [i,2].Control := link;
  end;
end;

上面这段代码的运行结果见图21.4,除了输出外,还有几件事值得注意。首先,表格使用了Delphi的anchors属性(全设为false)来使表格始终处在页面中间,即使用户改变了浏览器窗口大小。其次,我在第三列中加入了一个IWURL组件,当然也可以放其他组件(包括按钮和编辑框)。

图21.4 例程IWTwoForms使用的表格组件嵌入文本和IWURL组件

[1] [2] [3]  下一页


[聊天工具]Gmail推出新功能:Web Clip__天极Yesky  [聊天工具]Web MSN你玩了吗__天极Yesky
[系统软件]Web Browser Express 概述  [系统软件]对Internet Explorer Web 控件做一点修改
[常用软件]小技巧:三步实现Web迅雷录制PPLive节目  [常用软件]天网防火墙:打开WEB和FTP服务
[VB.NET程序]使用VB.Net做一个配置web.config功能的WinForm(原…  [VB.NET程序]vb.net控件、web service简述
[VB.NET程序]使用vbscript脚本调用web服务  [VB.NET程序]*** Web 存储系统窗体:窗体注册表 (new)***
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台