Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2010, 09:36   #1
peter888
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 11
Вопрос Ссылка в TStringGrid

Мне надо создать таблицу в которой будут некоторые данные, и в одном поле должны быть ссылки на разные сайты.
Я попробовал TStringGrid, но что-то не выходит.
Как сделать активную ссылку в TStringGrid’е на сайт?..
Возможно ли это?.. Если нет, то посоветуйте компонент, в котором это возможно.
peter888 вне форума Ответить с цитированием
Старый 10.09.2010, 10:01   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Ну, если в этом поле ничего не будет кроме ссылок, то почему бы не сделать в этом столбце синий подчеркнутый шрифт, курсор crHandPoint и при клике в ячейке
Код:
uses ShellApi
ShellExecute (Form1.Handle, nil, 'http://programmersforum.ru', nil, nil, SW_RESTORE);
_SERGEYX_ вне форума Ответить с цитированием
Старый 10.09.2010, 10:02   #3
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

Что значит активную ссылку? это что бы при плике по ячейке отрывалась ссылка? если да, то может так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.Cells[1, 1]:= 'http://www.google.ru/'; // добавляем ссылку в StringGrid
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
var
  sLink: string;
begin
  sLink:= StringGrid1.Cells[ACol, ARow];
  if sLink <> '' then
    ShellExecute(0,'open',PWideChar(sLink), nil,nil,sw_Normal); 
end;
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 10.09.2010, 10:40   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Если нужно несколько ссылок в одной ячейке, то варианта два:
1. Выводить их как текст, и ловить положение курсора, и в зависимости от него менять курсор на палец, подсвечивать ссылку если нужно, и клик обрабатывать.
2. Создавать для каждой ссылки Label и монтировать его поверх таблицы, сделать привязку, чтобы при прокрутке они следовали за своей ячейкой. Label'у задать нужные свойства, чтобы был на ссылку похож, вид курсора над ним, и обрабатывать клик по нему.

p.s. Есть еще вариант - заюзать VirtualTreeView, оч. хороший компонент, может очень много, наверняка и ссылки может показать без лишней мороки (читать здесь).
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 10.09.2010 в 10:44.
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TStringGrid erno5 Общие вопросы Delphi 1 20.06.2010 09:42
TStringGrid MyQwErTy Помощь студентам 7 26.02.2009 13:13
TStringGrid Gromsky Компоненты Delphi 4 04.03.2008 23:41