![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DLL
sergeyst © (2006-12-06 09:07:00)Всем привет.
Вызываю форму из DLL, все работает, а после закрытия формы прога виснет.
Вызов:
procedure SA(NMK_ID: Integer);
var
LibHandle: THandle;
PrintDoc: TPrintDoc;
begin
LibHandle := LoadLibrary('Print\projectdll.dll');
try
if LibHandle = 0 then
ShowMessage('Íå óäàëîñü çàãðóçèòü áèáëèòåêó Print\projectdll.dll');
@PrintDoc := GetProcAddress(LibHandle, 'PrintDoc');
if not (@PrintDoc = nil) then
PrintDoc(Application, NMK_ID, DataModule1.IBDatabase1, DataModule1.IBTransaction1 );
finally
FreeLibrary(LibHandle);
end;
end;
ShareMem написана. Подскажите в чем проблемма
Anatoly Podgoretsky (2006-12-06 10:30:00) [21]> sergeyst (06.12.2006 10:13:05) [5]
То есть вне зависимости загрузил библиотеку или нет, но Free делаешь :-)
Сергей М. (2006-12-06 10:24:00) [22]Что значит "после" ?
sergeyst (2006-12-06 10:13:00) [23]После Free
Сергей М. (2006-12-06 09:54:00) [24]На какой строчке "виснет" ?
sergeyst (2006-12-06 09:44:00) [25]Ну, знает кто-нибудь?
sergeyst (2006-12-06 09:13:00) [26]
> Сергей М. © (06.12.06 09:10) [1]
Да :
procedure PrintDoc(Appl: TApplication; NMK_ID: Integer; IBDataBase: TIBDataBase; IBTransaction: TIBTransaction);
begin
Form1 := TForm1.Create(Application);
with Form1 do begin
IBQDoc.Database := IBDataBase;
IBQDoc.Transaction := IBTransaction;
DataSource1.DataSet := IBQDoc;
IBQDoc.ParamByName('NMK_ID').AsInteger := NMK_ID;
IBQDoc.Open;
IBQDoc.First;
DocSetup;
ShowModal;
IBQDoc.Close;
Free;
end;
end;
Сергей М. (2006-12-06 09:10:00) [27]
> Вызываю форму из DLL
Модально ?