Как добавить столбец гиперссылки на TCXGRID (разработчик Express Grid)

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

  •  01-10-2019
  •  | 
  •  

Вопрос

Привет в Delphi, мне удалось (!) Чтобы добавить столбец к представлению таблицы TCXGRID, который появляется в виде гиперссылки (вместо простой строки). Для этого вы просто редактируете «свойства» столбца и выберите «гиперссылка». Ячейка теперь показывает стиль гиперссылки (подчеркнутой), но я наносят к жизни меня, как:

  1. Получите курсор, чтобы изменить в «руку», когда по ссылке.
  2. Добавьте событие, которое уволено, когда я нажимаю на ссылку.

Может кто-нибудь помочь? Спасибо.

Это было полезно?

Решение

Нажмите на заголовок столбца, столбец выбран.

Перейти к «событиям»

Характеристики - OnStartClick -> Это событие уволено, когда вы нажмете URL

На моей системе Delphi 7 с новейшим DEV.Express установлен, курсор изменен на руку, когда присутствует URL.

Я застревал мою примерную программу DEPHI 7 и исполняемый файл, чтобы вы видели полный проект (Загрузка из моего собственного сайта www.edelcom.com)

  • Запустите
  • Нажмите кнопку вставки внизу
  • Введите URL: www.google.com
  • нажмите Ввод
  • Переместите по ссылке - появляется рука, и нажав на ссылку, отображается сообщение «нажатием», если у вас нет события кликов, он запускает 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