ハイパーリンク列をtcxgrid(開発者エクスプレスグリッド)に追加する方法
-
01-10-2019 - |
質問
こんにちはDelphiでは、(!)(!)(単純な文字列の代わりに)ハイパーリンクとして表示されるTCXGridテーブルビューに列を追加することを管理しました。これを行うには、列の「プロパティ」を編集して「ハイパーリンク」を選択するだけです。セルは現在、ハイパーリンクスタイル(下線付き)を示していますが、私は私の人生のためにカノットします:
- リンクを越えたときに、カーソルを「ハンド」に変更します。
- リンクをクリックしたときに起動されるイベントを追加します。
誰かが助けることができますか?ありがとう。
解決
列ヘッダーをクリックすると、列が選択されます。
goto 'events'
プロパティ - OnStartClick
- > URLをクリックすると、このイベントが起動されます
最新のdev.Expressがインストールされている私のDelphi 7システムでは、URLが存在するときにカーソルが手に変更されます。
私は私のdephi 7サンプルプログラムと実行可能ファイルをジップしたので、あなたはあなた自身の完全なプロジェクトを見る (私自身のサイトからのダウンロードwww.edelcom.com)
- execを実行します
- 下部の挿入ボタンを押します
- url:www.google.comを入力します
- Enterを押します
- リンクを移動します - ハンドが表示され、リンクをクリックして、「クリックした」というメッセージが表示されます。クリックイベントがない場合、クリックされたURLも起動します(たぶんそれができますが、試していませんが、試していません。これ)
他のヒント
プロパティをハイパーリンクに設定した後、プロパティを拡張できます。ワンクリックでアクティベーションのために、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;
所属していません StackOverflow