|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как отобразить URL-ссылку из поля БД в DBLabel
У меня в аксесс-БД есть поле с ссылками на сайты, и 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 открывать. Google в помощь Последний раз редактировалось Ildar-tsr, 11.11.2011 в 11:31. |
#3
|
|||
|
|||
Большое спасибо.
На форум бегу потому что мне конкретные примеры нужны и нет времени читать кучу непонятной литературы. Да и исходника даже похожего не нахожу, чтобы просто посмотреть как подобные вещи реализуются и возможно ли это вообще |
#4
|
||||
|
||||
Цитата:
Я первый раз столкнулся с гиперссылками в делфи. Первый раз. И на весь сбор инфы и ее обработку ушло не больше получаса. Это учитывая, что мне это не нужно было, а если бы по работе требовалось, потратил бы еще меньше времени. Google в помощь |