Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.4.3 от 1.1.2001: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.4.3 от 1.1.2001»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.4.3 от 1.1.2001», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Технология динамической линковки DLL к EXE полезна во многих случаях. Например, работа с пакетами для создания 'plug-in' модулей (A/R, A/P, General Ledger и др.) или Point of Sale package с Current Stock, FIFO/LIFO Ordering, Vendor Tracking, и пр. модули.

Данная статья дает работающий пример того, как это сделать с единственной dll, 'Editdll.dll', и предоставит разработчику материал, расказывающий о том, как организовать в вашем приложении подключаемые модули.

Предварительные условия:

Хорошее знание работы компонента TTable, умение использовать DLL, BDE API и знание BDE hCursor. *WIN API для динамической загрузки любых DLL.

Пример приложения

Приведенная ниже форма, EditForm, работает с таблицей COUNTRY, расположенной в каталоге DBDEMO. При нажатии пользователем кнопки 'Edit' или при двойном щелчке на записи (строке), возникает диалоговое окно, расположенное в 'EditDll.dll' и демонстрирующее специфическую информацию, относящуюся к данной записи. В этой "точке" DLL синхронизирует себя не только с набором данных (и сессией), но и с текущей записью. Это означает, что полозователь изменяет те же самые данные, что он видит в EditForm! Ну а теперь углубимся в код демонстрационного приложения. (Для удобства просто скопируйте отсюда эти файлы и вставьте в ваше приложение)

Проект главной формы

{ MAINDB.DPR }

programmaindb;

usesForms, mainform in'mainform.pas' {dbmainform};

{$R *.RES}

begin

Application.Initialize;

Application.CreateForm(TDBMainForm, DBMainForm);

Application.Run;

end.

{ MAINFORM.PAS }

unitmainform;

interface

uses SysUtils, Windows, Messages, Classes, Graphics, Controls, StdCtrls, Forms, DBCtrls, DB, DBGrids, DBTables, Grids, ExtCtrls, BDE;

typeTDBMainForm = class(TForm)

Table1Name: TStringField;

Table1Capital: TStringField;

Table1Continent: TStringField;

Table1Area: TFloatField;

Table1Population: TFloatField;

DBGrid1: TDBGrid;

DBNavigator: TDBNavigator;

Panel1: TPanel;

DataSource1: TDataSource;

Panel2: TPanel;

Table1: TTable;

EditButton: TButton;

procedureFormCreate(Sender: TObject);

procedureEditButtonClick(Sender: TObject);

procedureDBGrid1DblClick(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

varDBMainForm: TDBMainForm;

implementation

{$R *.DFM}

procedureTDBMainForm.FormCreate(Sender: TObject);

begin

Table1.Open;

end;

// {ПРИМЕЧАНИЕ: DBHandle - дескриптор базы данных & DSHandle - курсор

// рассматриваемой записи. Кроме того, если вы имеете цель в

// динамической загрузке DLL во время выполнения приложения,

// используйте вызовы API LoadLibrary, GetProcAddress и

// FreeLibrary вместо подразумевающихся вызовов загрузки при

// запуске. Пример использования API для динамической загрузки: }

// Type

// {Для GetProcAddress}

// BDEDataSync =

// function(const DBHandle: HDBIDB; const DSHandle: HDBICur): Boolean;

// stdcall;

// {Организация перехвата ошибок загрузки DLL}

// EDLLLoadError = class(Exception);

// var h: hwnd;

// p: BDEDataSync;

// LastError: DWord;

// begin

// UpdateCursorPos;

// Try

// h := loadLibrary('EDITDLL.DLL');

// {Примечание для пользователей Delphi 1.0: Поскольку Win32

// LoadLibrary при неудачной загрузке DLL возвращает NULL,

// поэтому для поиска ошибки необходим вызов GetLastError,

// Win16 LoadLibrary возвращает значение ошибки (меньше чем

// HINSTANCE_ERROR), которая для выяснения причин неудачной

// загрузки может затем провериться с помощью Win16API SDK.}

// if h = 0 then begin

// LastError := GetLastError;

// Raise EDLLLoadError.create(IntToStr(LastError) +

// ': Невозможно загрузить DLL');

// end;

// try

// p := getProcAddress(h, 'EditData');

// if p(DBHandle, Handle) then Resync([]);

// finally

// freeLibrary(h);

// end;

// Except

// On E: EDLLLoadError do

// MessageDLG(E.Message, mtInformation, [mbOk],0);

// end;

// end;

// {или}

functionEditData( constDBHandle: HDBIDB; constDSHandle: HDBICur): Boolean; stdcall external'EDITDLL.DLL' name'EditData';

procedureTDBMainForm.EditButtonClick(Sender: TObject);

begin

withTable1 do begin

UpdateCursorPos;// Вызываем процедуру EditData из EditDll.dll.

ifEditData(DBHandle, Handle) thenResync([]);

end;

end;

procedureTDBMainForm.DBGrid1DblClick(Sender: TObject);

begin

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x