![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Реализация DLL [D5]
Cranium © (2003-01-08 01:09:00)Нужен пример кода реализующей следующее, в исполняемом файле дата модуль с DataSource в DLL дочерняя форма с гридом сваязанная с выше упомянутым DataSource... Если у кого есть похожий пример или ссылка на оный просьба поделиться....
asmith (2003-01-09 20:01:00) [1]Делаем примерно так:
1. в исполняемом файле дата модуль с набором данных и с соединенным с ним TDataSource с именем, например, MyDS
2. программа запускается, загружает DLL, запускает форму из нее, открывает набор данных
3. далее программа инициализирует данные-вызывает некую процедуру из DLL, передавая в нее ссылку на TDataSource
type
TInitData = procedure(ds : TDataSource); stdcall;
...
var
InitData: TInitData;
...
InitData := GetProcAddress(FHLib, "InitData");
if Assigned(InitData) then
InitData(MyDS);
4. в DLL содержится описание этой функции
exports
..., InitData;
и ее тело
procedure InitData(ds : TDataSource); stdcall; export;
begin
MyDLLForm.DBGrid1.DataSource := ds;
end;
ИМНО лучше делать чуть сложнее - завести в DLL собственный модуль данных и при ее загрузке инициализировать его активным соединением с источником данных (передать TDatabase.Handle при работе через BDE или TADOConnection.ConnectionObject для ADO).
Cranium (2003-01-09 09:34:00) [2]Очень жаль, что ни у кого нет примера исходника....
cranium (2003-01-08 21:40:00) [3]Что, ни кто не вкурсе?