Базы данных и знаний. Проектирование баз данных по технологии "клиент-сервер" и разработка клиентских приложений. Токмаков Г.П. - 111 стр.

UptoLike

Составители: 

- 111-
SetElemConnect ion (DataBase!.Handle);
ShowElemDlg(true);
If PGroups.changed then LoadList;
FreeLibrary(hlib);
end;
Собственно вызов формы производится в несколько этапов:
•- создается пустой экземпляр класса PGroups, который должен передаваться
в форму элемента PGroups: =TGroups. Create;
создается ОКНО CreateElemDlg (Application. Handle, PGroups);
устанавливается связь с БД, причем , диалогу передается все тот же Hand le
базы SetElemConnection (DataBasel. Handle) полученный из main;
диалог вызывается на экран в режиме вставки нового элемента
ShowElemDlg(true).
После вызова формы элемента в свойство changed объекта PGroups пока-
зывает, была ли выполнена операция внесения в БД, т. к. пользователь мог про-
сто нажать «Отмена». Если данные внесены (changed = true), то список
ListBox загружается заново, чтобы отобразить произведенные изменения.
Точно также производится и динамический вызов DLL в обработчике кноп-
ки «Свойства» btnPropClick.
procedure TflGroups.btnPropClick(Sender:TObject);
type
TCreateElemDlg=procedure(Handle: THandle; p: pointer);
TSetElemConnection=procedure(const DBHandle: HDBIDB);
TShowElemDlg=procedure(const DlgMode: boolean);
var
hLib: THandle;
CreateElemDlg: TCreateElemDlg;
SetElemConnection: TSetElemConnection;
ShowElemDlg: TShowElemDlg;
PGroups: TGroups;
begin
hLib:=LoadLibrary('DLGLIB01.DLL');
if hLib < 32 then
begin
ShowMessage('Отсутствует библиотека');
Exit;
end;
CreateElemDlg:=TCreateElemDlg(GetProcAddress(hLib,
'CREATEELEMDLL'));
SetElemConnection:=TSetElemConnection(GetProcAddress(
hlib, 'SETELEMCONNECTION'));
ShowElemDlg:=TShowElemDlg(GetProcAddress(hlib,
'SHOWELEMDLG'));
{создаем объект для передачи данных в форму элемента}