Cum să verificați dacă este creat un formular
Domnilor programatori! Prompt.
Există o aplicație MDI. Când faceți clic pe buton, se creează un formular cu DBGrid. Se numește metoda de afișare. Cum să vă asigurați că atunci când faceți clic din nou, formularul nu este creat din nou, ci este afișat pur și simplu. Ie cum să verificați dacă este creat formularul MDIChild.
dacă MDIChild1 <> nil atunci.
sau invidia drapelului
prin ceea ce este o indicație a formei legendei, de exemplu.
Form1.MDIChildCount
Form1.MDIChildren
Cu MDI, aveți grijă: programul nu știe exact ce este cu harddiskul (există sau nu), deci este mai bine să faceți acest lucru:
atunci când butonul este apăsat:
dacă FrmTTN = nul atunci FrmTTN: = TFrmTTN.Create (auto);
FrmTTN.WindowState: = wsMaximizată;
FrmTTN.Show;
procedura TFrmMDIChild.FormClose (expeditor: TObject; var Action: TCloseAction);
începe
Acțiune: = CaFree;
se încheie;
procedura TFrmTTN.FormDestroy (expeditor: TObject);
începe
FrmMDIChild: = nil;
se încheie;
Pentru o lungă perioadă de timp am căutat o soluție la această întrebare și la asta am ajuns
funcția ExistsForm (S: String): Boolean;
var i: întreg;
începe
rezultat: = False;
pentru i: = 0 la screen.FormCount-1 nu
dacă majuscule (screen.Forms [i] .name) = majuscule (e), atunci rezultă: = True;
se încheie;
parametru este numele formularului. Poate că nu este o capodoperă, dar funcționează perfect.
Toate acestea funcționează (și soluția este Serghei13 și Nebunul). Doar aici, dacă formularul este minimizat, va fi din nou creativ. Deși este în acțiunea OnClose: = caFree? Sunt produse două forme rezultate.
Scuzați domnii. Totul a funcționat. Mulțumesc foarte mult.