Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Как создать в Paradox ссылку


Автор: User 6.4.2005, 10:24
Добрый день. У меня возникла проблема. Я работаю с таблицами Paradox. Требуется в таблице создать поле, в котором будут храниться почтовые E-mail адреса клиентов. Но мне требуется следующее. Адреса эти как в обычной страничке HTML должны быть подсвечены как голубенькие. И при нажатии на них открывалась бы почтовая служба интернета, или Outlook если он установлен. Как такое сделать?

Автор: DimW 6.4.2005, 11:49
В разделе uses подключите ShellAPI
В обработчике OnClick метки или клавиши введите следующий код.

ShellExecute(Handle, 'open', 'mailto:lalala@lala.ru?par1=value1&par1=value1&...',
nil, nil, SW_SHOWNORMAL);




Третий параметр функции ShellExecute() - это строка в соответствии с протоколом mailto и правилами оформления URL:

mailto:
тип протокола (может быть http: в этом случае оставшая URL и параметры запроса).
lalala@lala.ru
адрес получателя, можно включать несколько адресов, разделяя из символом ";"
?
разделитель параметров от адреса
par1=value1
имя параметра и его значение
&
разделитель параметров
Протокол Mailto имеет следующую форму.



MAILTO:Recipients&Parameters




Поле Recipients может быть пустым, одиночным адресом и состоять из нескольких адресов, разделенных символом ";"
Поле Parameters дополнительно и если оно есть то должно быть отделено символом "&". Параметры должны появляться в форме пары name/value. Следующий список описывает возможные параметры:



PARAMETER DESCRIPTION




CC=
Carbon copy (дополнительные получатели)
BCC=
Blind carbon copy (дополнительные получатели, адреса которых не показываются остальным получателям)
SUBJECT=
Subject text (тема)
BODY=
Body text (текст)
Все данные указываемые в параметрах должны быть так называемые Internet safe characters. Используййте %0d для символа перевод строки (LF), %20 для пробела и так далее.

Пример:



mailto:email1;email2&cc=email3?subject=Это%20тема&
body=это%20текст%20письма%0dЭто%20другая%20строка

А насчет как это организовать в DBGrid смотри сюда:http://forum.vingrad.ru/index.php?showtopic=46459

Автор: User 7.4.2005, 13:27
Согласен. Можно написать и так:
ShellExecute(GetDesktopWindow(), 'open', PChar('mailto: lala@la.ru), nil, nil, SW_SHOWNORMAL);

Проблема в другом. Я использую dxDBGrid. В нем можно выставить по умолчанию на которое запускается инет. т.е. оно срабатывает если выставить www.rambler.ru но не более. ВВеди что нибудь другое, и этого эффекта не получиться. В стандартном TDBGrid есть событие OnSelectCell передает номер выбранной колонки (ACol) и строки (ARow). А в компоненте dxDBGrid этого нету. Какое свойство регулирует данные действия. И надо описать что бы клик мыши по данному столюцу, передало запись в данной ячейки. Я имею в виду что в вышеизложенном случаи я сам ручками прописываю адрес (lala@la.ru), а как сделать что бы этот адрес считывался из столбца ячейки, ведь они могут быть разными.

Автор: DimW 8.4.2005, 07:25
Цитата
Я использую dxDBGrid
.

smile сразу бы сказал... я с этим компонентом не работал...

Автор: User 8.4.2005, 13:05
Извени что сразу не сказал. Так кто нибудь знает?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)