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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.06.2009, 18:49   #1
Люсьен
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 12
Восклицание Отобразить гиперссылку из поля БД в Delphi

Есть у меня база данных в Access и в одной из таблиц поле Ссылка-гиперссылка на документ различного типа (.doc, .ppd и прочее).
Я подключаю в Делфи эту БД, с помощью компонентов TADOQuery, DataSourse, данные хочу отобразить в DBGrid. И по идее должна получиться табличка, где есть название документа и ссылка на него, нажимаю на ссылку и открывается документ.
Но гиперссылка не отображается, пишет просто (MEMO), вообще возможно ли так сделать и как?
пробовола сделать через компонент DBMemo, не получается.
Может вставить эти документы как OLE объекты в ассеss, если так, то с помощью какого компонента можно их отобразить в делфи.
Очень нужна помощь!
Люсьен вне форума
Старый 13.06.2009, 18:52   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

1. Можно вставить как ОЛЕ обьект
2. А можно сохранить адресс в виде String-ового поля и потом открывать с помощью ShellExecute
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума
Старый 13.06.2009, 19:10   #3
Люсьен
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 12
По умолчанию

1. Вставить как ОЛЕ обьект с помощью компонента OLEContainer?
Как его подключить к БД?
Люсьен вне форума
Старый 13.06.2009, 22:17   #4
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

нет не OLEContainer, модуль ComObj, используется для работы с MS Office

Вот небольшой код для EXCEL тут есть все что тебе нужно для загрузки нужного документа и эго отображения

Код:
uses ... ComObj, ...


procedure TForm1.BtnExportClick(Sender: TObject);
var
 XL, XArr: Variant;
begin
 XL:=CreateOLEObject('Excel.Application');     // Создание OLE объекта
 XL.WorkBooks.add;

    // Открытие существующей книги (где path - путь к фалу с расширением xls.):
    // XL.Workbooks.Open[path];

 XL.visible:=true;
end;
Excel меняй на Word принеобходимости

Последний раз редактировалось Gulik; 13.06.2009 в 22:30.
Gulik вне форума
Старый 14.06.2009, 17:35   #5
Люсьен
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 12
По умолчанию

Спасибо, попробую.
Слушайте, а что в простом Гриде не может отобразиться гиперссылка на документ, если такое поле есть в таблице БД? Неужели он не может мне его просто вытащить из базы и показать?
Люсьен вне форума
Старый 14.06.2009, 17:38   #6
Люсьен
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 12
По умолчанию

Они не все одного типа, есть и Wordовские и Excelевские файлы...
Люсьен вне форума
Старый 14.06.2009, 22:10   #7
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Можешь сделать процедуру. При двайном щелчке на гриде из поля строки по которой ты щелкнул будет браться путь к файлу и загружаться документ.
А порасширению файла можно определить какую процедуру будешь использовать. (для загрузки Word или Excel)
Gulik вне форума
Старый 17.06.2009, 18:11   #8
Люсьен
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 12
По умолчанию

Сделала такую вещь:
в базе написала путь к файлу, а в Делфи добавила следующий код:

procedure TForm1.DBGrid1CellClick(Column: TColumn);
var s:string;
begin
s:=AdoQuery1.FieldValues['Reference'];
ShellExecute(Handle,nil,pchar(s),'' ,'',SW_SHOWNORMAL);
end;

Все работает, открываются все приложения, вот только теперь некрасиво ссылка выглядит, весь путь к файлу виден.
Теперь будем бороться за красоту...
Люсьен вне форума
Старый 16.12.2012, 05:42   #9
Pilyla
Пользователь
 
Регистрация: 16.12.2012
Сообщений: 42
По умолчанию

а как быть,если гиперссылка представляет собой адрес страницы в интеренете?
Pilyla вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отобразить все поля DBGrid в Memo Krechet БД в Delphi 7 15.09.2010 18:28
Создать переход из одной формы в другую используя таблицу и гиперссылку smoky Microsoft Office Access 4 13.05.2009 15:38
Изменение связаного поля (Delphi, BDE, Paradox) Шульц БД в Delphi 4 08.01.2009 06:51
цикл for to do, или как отобразить сумму всех чётных трёхзначных чисел которые делятся на 7 (Delphi 6) Lorden Помощь студентам 9 23.12.2008 18:50
Как создать гиперссылку в событии onMouseMove на панели, например? SkAndrew Общие вопросы Delphi 16 15.11.2008 01:17