Cum să închideți corect formularul

Cum să închideți corect formularul

Bine ai venit! Prompt vă rog, am aruncat un exemplu de creare a unei forme modale din articolul despre crearea resurselor în DLL, pe acest site. acolo este scris că dacă MDIChild este folosit atunci este necesar să "amintiți descriptorul formularului pentru a-l utiliza mai târziu." dar cum să-l amintesc și cum să nu folosiți nimic, se spune: ((
Spuneți-mi cum să închid corect fereastra MDIChild, creată și deschisă dintr-un DLL încărcat dinamic. Acesta trebuie să fie închis chiar de DLL înainte de descărcare.

cum să păstrați corect fereastra MDIChild
Închide?

Închiderea, curentă când este închisă, elimină încălcarea accesului

La tine în cazul în care o eroare în program.

este clar că undeva este greșit, bănuiesc că nu deschid corect fereastra MDIChild în DLL.
Uită-te bine, o fac.
Procedură de pornire (aplicație: TApplication; Frm: TForm); export; stdcall;
var DllProc: Pointer;
începe
A început: = adevărat;
Cerere: = App;
PrForm: = TPrForm.Creați (Frm);
PrForm.Show;
End;

Oprirea procedurii; export; stdcall;
începe
ProtForm.Close;
End;

transferul nu obiectelor TA și TForm și descriptorii acestora
Application.Handle și MainMDIForm.Handle.
Recompilați în mod corespunzător dexriftorii.

El a dat. Căldura emite când forma este creată: (((((

Și proprietarul PrForm acum cine?

snake1977 (16.01.04 11:08) [6]
El a dat. Căldura emite când forma este creată: (((((
Dați codul, linia în care se blochează și eroarea.

Unele variabile globale ciudate. Nu se știe ce este, unde sunt, cineva se deschide, altul se închide.
Cu alte cuvinte, nu aveți un singur bug în program, ci o grămadă.

Apropo de glob. variabile - atenție la acest lucru, dacă mai multe obiecte sunt create de PrForm.

și unde aici cel puțin unii menționează că forma este prezentată modal.

vizualizarea formei în modul mod se face prin apelarea ShowModal

și, după cum îmi amintesc, forma MDIChild nu poate fi prezentată modal

Iată un fragment din corpul metodei ShowModal.

dacă este vizibil sau nu este activat sau (fsModal în FFormState) sau
(FormStyle = fsMDIChild) atunci
ridicați EInvalidOperation.Create (SCannotShowModal);

Memorie: 0,73 MB
Durată: 0,046 secunde

Articole similare