Как добавить столбец гиперссылки на TCXGRID (разработчик Express Grid)
-
01-10-2019 - |
Вопрос
Привет в Delphi, мне удалось (!) Чтобы добавить столбец к представлению таблицы TCXGRID, который появляется в виде гиперссылки (вместо простой строки). Для этого вы просто редактируете «свойства» столбца и выберите «гиперссылка». Ячейка теперь показывает стиль гиперссылки (подчеркнутой), но я наносят к жизни меня, как:
- Получите курсор, чтобы изменить в «руку», когда по ссылке.
- Добавьте событие, которое уволено, когда я нажимаю на ссылку.
Может кто-нибудь помочь? Спасибо.
Решение
Нажмите на заголовок столбца, столбец выбран.
Перейти к «событиям»
Характеристики - 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;