ハイパーリンク列をtcxgrid(開発者エクスプレスグリッド)に追加する方法

StackOverflow https://stackoverflow.com/questions/2696604

  •  01-10-2019
  •  | 
  •  

質問

こんにちはDelphiでは、(!)(!)(単純な文字列の代わりに)ハイパーリンクとして表示されるTCXGridテーブルビューに列を追加することを管理しました。これを行うには、列の「プロパティ」を編集して「ハイパーリンク」を選択するだけです。セルは現在、ハイパーリンクスタイル(下線付き)を示していますが、私は私の人生のためにカノットします:

  1. リンクを越えたときに、カーソルを「ハンド」に変更します。
  2. リンクをクリックしたときに起動されるイベントを追加します。

誰かが助けることができますか?ありがとう。

役に立ちましたか?

解決

列ヘッダーをクリックすると、列が選択されます。

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;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top