Mega Code Archive

 
Categories / Delphi / Examples
 

Tscreen

Each DLL in Delphi maintains its own instance of Application & Screen, your DLL-calling application should send the its own Application and Screen values to the DLL. The DLL should save and restore its original values. You should put this code somewhere in your DLL and call the Init() function from your application: const SavedApplication : TApplication = nil; SavedScreen : TScreen = nil; // export this procedure and call it after loading the DLL procedure Init(anApplicationHandle, aScreenHandle: LongWord); begin if not Assigned(SavedApplication) then begin SavedApplication := Application; Application := TApplication(anApplicationHandle); end; if not Assigned(SavedScreen) then begin // ....same... end; end; initialization finalization if Assigned(SavedApplication) then begin Application := SavedApplication; end; if Assigned(SavedScreen) then begin // ....same..... end; end.