【问题标题】:How to add a hyperlink column to a TcxGrid (Developer express grid)如何将超链接列添加到 TcxGrid(开发人员快速网格)
【发布时间】:2010-04-23 06:18:34
【问题描述】:

嗨,在 Delphi 中,我已经管理 (!) 将列添加到 TcxGrid 表视图中,该列显示为超链接(而不是简单的字符串)。为此,您只需编辑列的“属性”并选择“超链接”。该单元格现在显示超链接样式(带下划线),但我无法终生了解如何:

  1. 在链接上时让光标变为“手”。
  2. 添加一个在我单击链接时触发的事件。

有人可以帮忙吗? 谢谢。

【问题讨论】:

    标签: delphi devexpress tcxgrid


    【解决方案1】:

    将属性设置为超链接后,您可以展开属性。将 SingleClick 属性设置为 True 即可一键激活。

    改变光标比较困难。您必须对 mousemove 事件做出反应并确定鼠标是否悬停在超链接列上。来自DevExpress 网站:

    procedure TForm1.cxGrid1DBTableView1MouseMove(Sender: TObject;
      Shift: TShiftState; X, Y: Integer);
    var
      Ht: TcxCustomGridHitTest;
    begin
      Ht := TcxGridSite(Sender).GridView.Viewinfo.GetHitTest(X,Y);
      If (Ht is TcxGridRecordCellHitTest) and
       (TcxGridRecordCellHitTest(Ht).Item.Properties is TcxHyperLinkEditProperties) then
        Screen.Cursor := crHandPoint
      else
        Screen.Cursor := crDefault;
    end;
    
    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if Screen.Cursor <> crDefault then
         Screen.Cursor := crDefault;
    end;
    

    【讨论】:

    • Dev.Express 应该在他们的组件中构建这个。特别是对于超链接(虽然在我的测试项目中使用普通的非 db 表,手会自动出现(但我认为你需要包含 http: )。
    【解决方案2】:

    点击列标题,该列被选中。

    转到“事件”

    Properties - OnStartClick -> 当你点击一个 url 时触发这个事件

    在我安装了最新的 dev.express 的 delphi 7 系统上,当存在 url 时,光标变为手形。

    I zipped my Dephi 7 sample program and executable so you see the complete project your self(从我自己的网站www.edelcom.com下载)

    • 运行 exec
    • 按下底部的插入按钮
    • 输入网址:www.google.com
    • 按回车
    • 在链接上移动 - 手出现,点击链接,显示一条消息 'clicked' ,如果你没有点击事件,它会启动点击的 url(也许它也可以这样做,但我没有没试过)

    【讨论】:

    • @Edelcom:感谢您的提示,但我仍在苦苦挣扎。我没有得到手,也没有触发 OnStartClick 事件。我已将文本字符串预设为 www.something.com,但尽管会显示,但它并不“热”。你有鼠标事件来获得手吗?你能告诉我你设置了什么属性吗?
    • @brianfrost:我更新了我的答案,包括一个指向我尝试过的非常小的项目的链接。它在 Delphi 7 中。
    • 谢谢你的作品。不过,如果有内置的超链接活动,那就太好了。
    • 那太好了。问题是一个名为“SingleClick”的属性,它默认为 false 并且没有手。你说的是真的,现在我也是:-)
    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多