托盘控件TTrayIcon

Borland Developer Studio 2006 已于 2005 年 12 月 5 日正式发布了。 Delphi 2006 是 Borland Developer Studio 2006 产品中的一部分,我们不仅能继续开发基于 Win32 平台的应用程序,还可以使用 Delphi 语言编写 .NET 平台的应用程序,使得 Delphi 程序员可以轻松的将 Win32 平台的应用程序移植到 .NET 平台中。

    本文将带领读者去体验一下 Delphi 2006 中高级控件的应用。看完本文后,你会发现,使用 Delphi 2006 将会使你更加高效、快速地开发应用程序。

一、 Delphi 2006 中控件的安装

    以前的大多数第三方控件仍然可以在 Delphi 2006 中使用。只是在安装方式上有一些差别。

    1 . DPK 控件包的安装方法:

    有一些第三方控件提供给我们的是 DPK 文件,在 Delphi7 中,我们直接双击就可以进行安装。但是在 Delphi 2006 中,步骤有一点不同。我们以 FlatStyle 控件的安装为例,讲解一下 DPK 控件包的方法:

    第一步:启动 Delphi for Microsoft Win32 ,点击“ File ”菜单下的“ Open Project ”,选择要安装的 DPK 文件 FlatStyle_D7.dpk ,点击“打开”按钮。

    第二步:在右边的“ Project Manager ”中,鼠标右击控件名称 FlatStyle_D7.bpl ,在弹出的菜单中点击“Install”。 Delphi 2006 将对控件进行编译并安装。

安装控件

    2 .单个 PAS 文件的安装:

    有一些第三方控件只有一个 PAS 文件,没有提供安装包,在 Delphi 7 中,可以单独对 PAS 文件进行安装,但是在 Delphi 2006 里,已经取消了这个功能。那么在 Delphi 2006 中如何安装单个的 PAS 文件呢?方法如下:

    第一步:点击“ File ”-“ New ”菜单中的“ Package – Delphi for Win32 ”,新建一个控件包。

    新建控件包

    第二步:选中右边“ Project Manager ”中“ Contains ”文件夹,点击鼠标右键,在弹出的菜单中选择“ Add ”。

    添加

    第三步:在 Add 对话框中,点击“ Browse ”按钮,选择要安装的 PAS 文件,然后点击“ OK ”按钮。

    选择 PAS 文件

    第四步:鼠标右击“ Project Manager ”中的“ Package1.bpl ”,在弹出的菜单中选择“ Install ”,这时就完在了控件的安装。

    第五步:保存 bpl 文件。

  

    二、属性编辑器控件

    1 . TValueListEditor

    Delphi 2006 提供的 TValueListEditor 控件可以编写一个类似于 Delphi7 的 Object Inspector 。下面我们就来编写一个简单的属性编辑器,如下图所示:

    属性编辑器

    第一步:在窗体上放置一个 ValueListEditor 控件(在 Additional 面板中可能找到该控件)。

    第二步:添加属性名称及属性值。本例中,我们一共有 3 个属性,分别是“ Name ”、“ Color ”和“ Size ”。 ValueListEditor 为我们提供了 InsertRow 方法,使用该方法可以添加属性名称及属性值。代码如下:

    ValueListEditor1.InsertRow('Name', '', True);

    ValueListEditor1.InsertRow('Color', 'clRed', True);

    ValueListEditor1.InsertRow('Size', '9', True);

    是不是非常简单?运行程序,用鼠标点击 Size 中的 9, 效果是否不同呢?编辑器中有一个下拉列表,那么如何实现呢?我们将第三句代码作如下修改:

    Index := ValueListEditor1.InsertRow('Size', '9', True);

    首先获取要修改的行号, InserRow 在插入一行后,会返回当前行的行号。下面再使用 ItemProps 属性修改“行”的属性:

    with ValueListEditor1.ItemProps[Index - 1].PickList do begin

    Add('9');

    Add('11');

    Add('13');

    Add('20');

    end;

    PickList 中就是保存的下接列表中的数据。

    现在再运行程序看看效果,是否一样了呢?

    下面我们再看一个效果:

    带“弹出”效果的编辑器

    图中的 clRed 后有一个“ … ”按钮,在 Delphi 7 中,当这个按钮出现时,我们可以通过点击这个按钮弹出一个窗体,进行相应的属性设置。那么,我们要实现这样的效果也是非常简单的,将“ ValueListEditor1.InsertRow ('Color', 'clRed', True); ”这句代码作如下修改:

    Index := ValueListEditor1.InsertRow('Color', 'clRed', True);

    ValueListEditor1.ItemProps[Index - 1].EditStyle := esEllipsis;

    修改 ItemProps 中的 EditStyle 属性为“ esEllipsis ”即可实现这样的效果。但是,现在这个按钮什么都不能干,需要我们加入执行代码才会发挥其作用。在这个例子中,我们要求点击“ … ”按钮后,弹出颜色对话框,然后将用户选择的颜色值显示在 Color 右边的文本框中。我们可以在 OnEditButtonClick 事件中写入实现代码:

    procedure TForm1.ValueListEditor1EditButtonClick(Sender: TObject);

    var

    nRow: Integer;

    begin

    nRow := ValueListEditor1.Row;

    case nRow of

      2:

      with TColorDialog.Create(nil) do

      begin

        if Execute then

        ValueListEditor1.Cells[2, nRow] := ColorToString(Color);

        end;

    end;

    end;

    当点击“ … ”按钮时,会触发 OnEditButtonClick 事件。在 OnEditButtonClick 事件中,我们首先使用 ValueListEditor1.Row 获取当前“行”的行号,也就是鼠标点击的是哪一行的按钮。知道了行号,我们就可以根据行号来加入相应的代码。在本例中,只有第二行有“ … ”按钮,因此,当 Row 等于 2 时,我们就显示颜色对话框。“ ValueListEditor1.Cells[2, nRow] := ColorToString(Color); ”这一句代码是将用户选择的颜色值显示到文本框中。

    通过上面的讲解,我们知道了属性记录的添加及设置。那么如何获取某个属性的属性值呢?请看下面:

    假如我们要获取 Name 的属性值,我们使用下面的代码即可获得:

    ShowMessage(ValueListEditor1.Cells[2, 1]);

    前面我们通过 Cells 属性设置了文本框中的内容,在这里,我们可以使用 Cells 属性获取指定文本框的内容。 Cells 有 2 个参数,第一个是列,第二个是行。 Name 的属性值是在第 2 列、第一行中的,因为指定 Cells[2,1] ,如果要获取 Size 的属性值,那么就应该是 Cells[2,3] 。

    属性 / 方法说明

    DeleteRow 删除指定行。

    FindRow 查找行。

    ColCount 获取列的个数。

    ItemProps.HasPickList 是否捅有下拉列表。

    Values 根据 Key 获取 Key 所对应的值。

    Keys 获取 Key 的值 RowCount 获取行的个数。

    三、系统控件

    1 . TTrayIcon 在 Delphi 2006 中,新增了一个 TTrayIcon 的控件。该控件是用于在托盘中显示自己软件的图标。使用 TTrayIcon 控件可以很容易的实现“动态图标”及“气泡提示”功能。如下图所示:

    托盘显示

    ( 1 )“气泡提示”的制作

    第一步:在窗体中放置 TrayIcon 控件( Additional 面板中可以找到)。

    第二步:设置 TrayIcon 的 Icon 图标,载入一个 ICO 文件。

    第三步:设置 TrayIcon 的 BalloonHint 为“ Delphi 2006 高级控件应用”,设置 BalloonTitle 为“电脑报 2005 年合订本”。设置 Visible 为 True 。

    第四步:双击窗体,在 OnCreate 事件中写入下面代码: TrayIcon1.ShowBalloonHint;

    好了, F9 运行程序,一个“气泡提示”就会出现在图标上。属性中的 BalloonTimeout 是设置“气泡提示”多少秒后消失,默认是 3 秒。

    ( 2 )动态图标

    我们大家都知道,当有 QQ 消息时,托盘中会有一个闪烁图标,使用 TrayIcon 控件可以非常容易地实现这个功能。

    使图标动起来,其实就是使用多个图标进行切换。 QQ 的闪烁图标,其实就是使用的两个图标来进行切换的,一个是头像图标,一个是空的图标。

    下面我们就来模拟 QQ 头像闪烁功能:

    第一步:在窗体上放置 ImageList 控件(在 Win32 面板中可以找到)。

    第二步:设置 ImageList 控件的 Width 和 Height 属性为 32 ,然后双击 ImageList ,点击“ Add ”按钮添加图标文件。第一个添加的是要显示的图标,第二个添加一个空的图标(可以使用 Image Editor 新建一个 ICO 文件,然后直接保存即可得到一个空的图标。)。

    第三步:设置 TrayIcon 的 Icons 属性为 ImageList1 (可以直接在列表中选择)。

    第四步:在 Form1 的 OnFormShow 事件中加入下面的代码:

    TrayIcon1.Animate := True;

    TrayIcon1.AnimateInterval := 450;

    当 Animate 为 True 时,将自动按 ImageList 控件中图标的顺序进行依次显示,形成动态效果。 AnimateInterval 为每隔多少时间显示下一个图标。如果要停止闪烁,将 Animate 设置为 False 即可。

    怎么样, Delphi2006 提供的 TTrayIcon 控件是不是很酷。

 

来源:http://mailcyz.blog.163.com/blog/static/66428346200811511324756/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SysTray控件用法详解 VB SYSTRAY 托盘图标 用VB6自带的systray.ocx控件实现托盘图标程序 : 补充: 然后在自己的VB程序中添加改控件(工程-部件-浏览)。   最好把这个ocx放到C:\WINDOWS\system32。   改控件的属性InTray属性用来设置是否显示在托盘中,True为显示在托盘,False为不显示。TrayIcon属性是在托盘中显示的图标式样。TrayTip属性是鼠标移到改控件上面显示的提示文字。如果要使程序最小化时显示到托盘,如下:   Private Sub Form_Resize()    If Me.WindowState = vbMinimized Then    cSysTray1.InTray = True    Me.Visible = False End If   End Sub   点击托盘图标后让程序显示出来,如下:   Private Sub cSysTray1_MouseDown(Button As Integer, Id As Long)    Me.WindowState = vbNormal    Me.Visible = True    cSysTray1.InTray = False    Me.SetFocus   End Sub '单击关闭不退出程序 Private Sub Form_Unload(Cancel As Integer) 主程序.Hide Cancel = False End Sub '单击关闭不退出程序 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Cancel = 1 主程序.Hide End Sub ’tui为窗体菜单-退出选项名称 Private Sub tui_Click()’快捷键设ALT+F1 End End Sub '注:"主程序"代表一个窗体(Form),窗体菜单-退出选项需设置快捷键ALT+F1 '这个控件有一个小小的问题,如果托盘菜单有退出选项,不能直接用"End 语句",否则在编译后运行期间用户选择退出后,操作系统会报错,以上使用发送按键方法避免出错 ,当然还有其他避免出错方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值