Modális formák a dll oldalon
A DLL-ben nem csak számításokat végezhet, hanem űrlapokat is megjeleníthet, például párbeszédablakokat. Ehhez nyissa meg a DLL implementációs projektet, hozzon létre egy modulot az űrlappal, és tegye meg a szükséges vezérlőket "
az eseménykezelőkkel együtt. Ezután hozzon létre egy exportálható funkciót, amely megjeleníti a párbeszédpanelt:
Ez a párbeszédpanel hívó kód csak akkor használható, ha a DLL statikusan van betöltve. Amikor végre egy DLL párbeszédablakban meg kell jegyezni, hogy ellentétben formájában alkalmazásokat DLL nem hozható létre egyidejűleg a DLL fut (a kérelmek esetében elegendő telepíteni Auto-Create Form négyzetet a lap Forms párbeszédablak nyitható Project ► Beállítások parancs). Ezért az űrlapot dinamikusan kell létrehozni, ha létrehozza a Konstrukció létrehozását a kódból. Ennek megfelelően, mielőtt kilép az eljárásból, amely felhívja az űrlapot, meg kell hívnia a megsemmisítőjét (ebben a példában - FDialog.Release). Ezután meg kell jegyezni, hogy a DLL-ben létrejön egy TApplication típusú objektum. Mivel maga az alkalmazás is rendelkezik ezzel az objektummal, akkor ha nem hajt végre semmilyen intézkedést, két gomb jelenik meg a képernyőn a tálcán:
az egyik az alkalmazáshoz és a másik a DLL-hez, amely létrehozza a párbeszédpanelt. Ezt az 1. ábra szemlélteti. 7.2.
Ábra. 7.2. Két gomb megjelenése a tálcán, amikor párbeszédpanelt hív a DLL-ből
Amikor az alkalmazás gombra kattint, aktiválódik, a fő formanyomtatvány megjelenik a képernyőn, de nem érhető el a fő űrlapvezérlő. Nyilvánvaló, hogy ez a viselkedés helytelen. Ezért a párbeszédablakot létrehozó könyvtárban lévő függvényparaméterként hivatkozást kell használnia az alkalmazás TApplication objektumára (pontosabban annak Handle tulajdonságára). A következő hozzárendeléssel az objektum TAppl i cati megsemmisül a DLL-ben, és az alkalmazás elkezdi támogatni az operációs rendszer üzenetek küldését a DLL-ben létrehozott vezérlőkhöz:
Ugyanakkor az alkalmazás egyik gombja a tálcán marad, ami teljesen helyes. A DLL-hez tartozó párbeszédablakot futtató fő alkalmazás kódja az alábbi: