2010-04-23 19 views
1

嗨在德爾福我已經管理(!)將列添加到TcxGrid表視圖顯示爲超鏈接(而不是簡單的字符串)。爲此,只需編輯列的「屬性」並選擇「超鏈接」即可。該單元現在顯示超鏈接樣式(帶下劃線),但我爲我的生活看到如何:如何添加超鏈接列到TcxGrid(開發人員快速網格)

  1. 獲取光標以在鏈接上更改爲「手形」。
  2. 添加一個點擊鏈接時觸發的事件。

任何人都可以幫忙嗎? 謝謝。

回答

0

單擊列標題,選擇該列。

轉到「活動」

屬性 - OnStartClick - 當你點擊一個鏈接

在我安裝了最新的dev.express德爾福7系統>此事件被觸發,光標變爲手形時一個網址存在。

I zipped my Dephi 7 sample program and executable so you see the complete project your self

  • 運行exec(從我自己的網站www.edelcom.com下載的)
  • 按底部
  • 插入按鈕輸入網址:www.google.com
  • 按回車
  • 通過鏈接移動 - 手出現,點擊鏈接,顯示消息'點擊',如果你沒有點擊事件,它會啓動點擊的網址(也許它也可以做到這一點,但我有不要試圖這樣)
+0

@Edelcom:THanks的提示,但我仍在掙扎。我沒有得到手,我沒有得到OnStartClick事件發射。我已將文本字符串預設爲www.something.com,但雖然顯示,但它不是「熱」。你有沒有鼠標事件來獲得手?你能告訴我你有什麼屬性嗎? – 2010-04-23 14:29:28

+0

@brian霜:我更新了我的答案,包括一個鏈接到我試過的非常小的項目。它在Delphi 7中。 – Edelcom 2010-04-24 06:05:55

+0

謝謝你的作品。儘管有內置的超鏈接活動會很好。 – 2010-04-26 12:04:38

1

將屬性設置爲超鏈接後,可以展開屬性。只需單擊一下即可將SiongleClick屬性設置爲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; 
+0

Dev.Express應該在他們的組件中構建它。特別是對於一個超鏈接(儘管在我的測試項目中有一個正常的非分表,手會自動出現(我認爲你需要包括http:,雖然)。 – Edelcom 2010-04-27 07:39:02

相關問題