Formulare modale în pagina dll

Într-un DLL, puteți efectua nu numai calcule, ci și forme de afișare, cum ar fi casetele de dialog. Pentru a face acest lucru, deschideți proiectul de implementare DLL, creați modulul cu formularul și puneți comenzile necesare pe acesta "







împreună cu gestionarea evenimentelor. Apoi, creați o funcție exportabilă care va afișa caseta de dialog:

Acest cod de apel pentru caseta de dialog trebuie utilizat numai atunci când DLL-ul este încărcat static. Atunci când a implementat într-o casetă de dialog DLL, trebuie remarcat faptul că, în contrast cu forma de aplicații într-un DLL nu pot fi create simultan cu DLL care rulează (în cazul aplicațiilor este suficient pentru a instala caseta de validare Form în fila Auto-Creați formulare caseta de dialog pentru a fi deschis comanda de proiect ► Opțiuni). Prin urmare, formularul trebuie să fie creat dinamic apelând constructorul său din cod. Prin urmare, înainte de a ieși din rutina care apelează forma, apel destructor sale (în acest exemplu - FDialog.Release). Mai mult, ar trebui să se țină seama de faptul că un obiect de tip TApplication este creat în DLL. Deoarece aplicația însăși are și acest obiect, atunci, dacă nu luați nicio măsură, două butoane apar pe ecran în bara de activități:







unul pentru aplicație și altul pentru DLL care creează caseta de dialog. Acest lucru este ilustrat în Fig. 7.2.

Formulare modale în pagina dll

Fig. 7.2. Apariția a două butoane pe bara de activități atunci când apelați o casetă de dialog din DLL

Când faceți clic pe butonul aplicației, acesta este activat, formularul principal apare pe ecran, dar nu puteți accesa comenzile din formularul principal. Evident, acest comportament este incorect. Prin urmare, ca parametru funcțional în biblioteca care creează caseta de dialog, trebuie să utilizați o trimitere la obiectul TA aplicație al aplicației (mai precis, la proprietatea Handle). Prin următoarea alocare în DLL este distrus TAppl i CATI pe obiect și aplicația începe să trimită mesaje pentru a sprijini comenzile sistemului de operare, create în DLL:

În același timp, un buton al aplicației rămâne pe bara de activități, ceea ce este destul de corect. Un exemplu de cod tipic pentru aplicația principală care apelează dialogul din DLL este prezentat mai jos:

Delphi și tehnologia COM







Articole similare

Trimiteți-le prietenilor: