DBgrid - открытие почтовой программы

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

DBgrid - открытие почтовой программы

Сообщение Scuer » 01.09.2016 15:19:38

Обыскал весь инет для решения задачи и пусто (( А вопрос таков
Имеем стандартный грид, в нём записи полученные из БД( поля типа имя, фамилия, номер телефона и т.д.).
Задача, есть поле email (в ктором содержится записи электронной почты).
Надо чтоб эти записи были как активная ссылка при нажатии на которую открывалась почтовая программа. Сам вызов mailto прост, реализовать можно через SellExecute

Код: Выделить всё
shellexecute(Application.Mainform.handle, 'open',PChar('mailto:' + 'почта' ),nil, nil, sw_normal);


А вот как это дело привинтить к самуму dbgrid?
Scuer
новенький
 
Сообщения: 12
Зарегистрирован: 01.09.2016 15:07:09

Re: DBgrid - открытие почтовой программы

Сообщение vada » 01.09.2016 15:55:06

Событие Click на гриде обработать никак?
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: DBgrid - открытие почтовой программы

Сообщение WAYFARER » 01.09.2016 16:10:04

Обработать событие onCellClick

Код: Выделить всё
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  if Column.FieldName = 'EMAIL' then shellexecute(Application.Mainform.handle, 'open',PChar('mailto:' + Column.Field.AsString\0 ),nil, nil, sw_normal);
end;
 
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: DBgrid - открытие почтовой программы

Сообщение Scuer » 01.09.2016 16:18:47

Огромное спасибо

Код: Выделить всё
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  if Column.FieldName = 'EMAIL' then shellexecute(Application.Mainform.handle, 'open',PChar('mailto:' + Column.Field.AsString\0 ),nil, nil, sw_normal);
end;


Всё как надо супер)) Обработку если поле пустое то не надо ничего и никого посылать я уже сам допишу )))

3 строчки и пол дня думать как это обработать, а ответ простой.
Всем, ешё раз спасибою

Добавлено спустя 7 минут 8 секунд:
Код: Выделить всё
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
   if Column.FieldName = EMAIL' then
begin
  if Column.Field.AsString ='' then
     exit
else
    shellexecute(Application.Mainform.handle, 'open',PChar('mailto:' + Column.Field.AsString),nil, nil, sw_normal);
end;
end;


Вот так всё просто и всё работает.
Тему можно считать закрытой.
Всем спасибо.
Scuer
новенький
 
Сообщения: 12
Зарегистрирован: 01.09.2016 15:07:09


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 227

Рейтинг@Mail.ru