![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
У меня в аксесс-БД есть поле с ссылками на сайты, и e-mail (тип поля: гиперссылка). Для отображения этой информации в делфи, использовала DBLabel. Но он отобразил данные так: (MEMO). Подскажите пожалуйста, как отобразить ссылки нормально в лейблах, с дальнейшим кликаньем на них и переходом по ссылке на нужный сайт (и с открытием MS Outlook для e-mail)? Заранее большое при большое спасибо!!!
|
|
#2
|
||||
|
||||
|
Цитата:
Вот у меня сразу вопрос возникает, Вы пытаетесь что-нибудь сделать самостоятельно, или сразу на форум бежите? По порядку: 1. Вместо DBText кидаем на форму стандартный Label. Сразу же идем в font, ставим подчеркивание и выбираем синий цвет. Также желательно выбрать cursor в виде руки с вытянутым указательным пальцем (crHandPoint). 2. Помещаем на форму еще один кверик с запросом вида: Код:
select ssilka from table where id = :id 3. У грида на событие OnCellClick прописываем следующее: Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var s: string;
begin
ADOQuery2.Close;
ADOQuery2.Parameters.ParamByName('id').DataType:= ftInteger;
ADOQuery2.Parameters.ParamByName('id').Value:= ADOQuery1.fieldByName('id').AsString;
ADOQuery2.Open;
s:= ADOQuery1.FieldByName('Ssilka').AsString;
if pos('@', s) = 0 then//ссылка на страницу
Label1.Caption:= StringReplace(s,'#','',[rfReplaceAll])
else //e-mail
Label1.Caption:= copy(s, 1, pos('#', s)-1);4. В uses добавляем модуль ShellApi. 5. Обработка клика на label: Код:
procedure TForm1.Label1Click(Sender: TObject);
begin
if pos('@', Label1.Caption) = 0 then //ссылка на страницу
ShellExecute(Application.Handle, PChar('open'), pChar(Label1.Caption), nil, nil, SW_NORMAL)
else //e-mail
ShellExecute(Application.Handle, PChar('open'), PChar('mailto:'+Label1.Caption),nil,nil,1);
end;P.S. Не сразу заметил, что еще и outlook открывать. Последний раз редактировалось Ildar-tsr, 11.11.2011 в 11:31. |
|
#3
|
|||
|
|||
|
Большое спасибо.
На форум бегу потому что мне конкретные примеры нужны и нет времени читать кучу непонятной литературы. Да и исходника даже похожего не нахожу, чтобы просто посмотреть как подобные вещи реализуются и возможно ли это вообще |
|
#4
|
||||
|
||||
|
Цитата:
Я первый раз столкнулся с гиперссылками в делфи. Первый раз. И на весь сбор инфы и ее обработку ушло не больше получаса. Это учитывая, что мне это не нужно было, а если бы по работе требовалось, потратил бы еще меньше времени. |