Dezvoltarea de aplicații în mdi delphi
Delphi. Software-ul și interfața. aplicație MDI
Dezvoltarea de aplicații MDI în Delphi
Fiecare aplicație MDI are trei componente principale:
- One (și numai una) formă părinte MDI,
- Una sau mai multe (în general, mai mult) copilul face MDI,
- și MDI meniul principal.
După cum sa menționat deja, proiectul de aplicatii MDI MDI, numai un singur recipient poate fi prezent (forma părinte) și ar trebui să fie sub formă de pornire.
Pentru a crea fereastra principală o aplicație MDI, urmați acești pași:
Rulați Delphi și selectați File | Aplicație nouă. Delphi va crea un nou proiect cu un formular numit Form1 (implicit). În proprietatea Nume, atribuie frMain forma nume. Instalați proprietatea FormStyle în fsMDIform. Salvați proiectul (numele proiectului la alegere, de exemplu prMDIExample), împreună cu uMain.pas în directorul nou creat. După cum ați observat, pentru a crea o formă de bază a MDI, am stabilit proprietate FormStyle în fsMDIform. În fiecare aplicație, doar o singură formă poate avea o fsMDIform proprietate.
Fiecare fereastră părinte MDI are nevoie de cel puțin o formă de copil. Copil formează MDI - este cea mai simplă formă, cu excepția faptului că acestea sunt o parte vizibilă a dimensiunii limitate a ferestrei părinte. Doar atunci când minimizarea această fereastră, acesta este plasat nu în bara de activități, și rămâne în fereastra părinte (numai fereastra părinte pe bara de activități devine).
Acum, să creeze forme suplimentare, ci mai degrabă copilul. Pur și simplu selectați Fișier | Formular nou. va fi creată o nouă formă a unui obiect numit Form1 (implicit). Prin utilizarea Object Inspector, modificați proprietatea Name în forma Form1 pe frChild și proprietatea FormStyle la fsMDIChild. Păstrați acest formular cu fișierul său corespunzător ca uchild.pas. Vă rugăm să rețineți că, prin utilizarea acestei proprietăți, putem transforma orice formă existentă în forma copil MDI.
Cererea dvs. poate include mai multe forme MDI copil de același tip sau diferite.
Vreau doar să atrag atenția că aplicarea MDI poate include, și forma cea mai comuna, dar spre deosebire de filialele, acestea vor fi afișate sub formă de casete de dialog modale normale (cum ar fi caseta de informații, sau dialogul de fișiere).
Estevstvenno că atât părinte și copil ferestrele pot fi plasate toate comenzile, cu toate acestea, a fost mult timp o tradiție că forma părinte este bara de stare (bara de stare) și bara de instrumente (bara de instrumente), în timp ce pe formularele pentru copii sunt toate alte controale, cum ar fi rețelele, imagini, câmpuri de intrare, și așa mai departe. d.
Acum să proizvedom tweaking proiectul nostru. Selectați proiect | Opțiuni, deschideți dialogul de opțiuni de proiect (Opțiuni proiect). În panoul din stânga, selectați frChild (Auto-crea formulare ( „Auto-crea formulare“)), și mutați-l în panoul din dreapta (formularele disponibile (formularele disponibile)). Lista panoul din dreapta conține forma care este utilizat de aplicația dvs., dar nu sunt create în mod automat. Într-o aplicație MDI, în mod implicit, toate formele de copil sunt generate automat și afișate în forma părinte.
Crearea și afișarea
După cum sa menționat mai sus, setarea nu permite să creeze automat copil ferestre, așa că trebuie să adăugați un cod care va produce frChild crearea de formă obiect. CreateChildForm următoarea funcție trebuie să fie plasate în interiorul formei de bază (MDI părinte) (în plus față de titlul din interfața lui privat):
Acest cod creează un formular copil cu antet childName. Nu uitați că acest cod se află sub „folosește uchild“.
La aproape nu a minimiza!
Închiderea unei ferestre copil în aplicația MDI doar pur și simplu minimizează în zona de client a ferestrei parinte. Prin urmare, trebuie să ne asigurăm OnClose procedură și setați parametrul de acțiune în caFree:
Rețineți că, dacă forma este o filială a forma MDI, iar proprietatea acesteia este setată la BorderIcons biMinimize (implicit), apoi, din nou, setarea implicită este setată la acțiune caMinimize. Dacă în forma copil MDI nu are aceste setări, implicit este setat la acțiune caNone, ceea ce înseamnă că nu se întâmplă nimic atunci când închideți formularul.
meniu părinte MDI
Fiecare aplicație MDI trebuie să aibă un meniu principal (dacă nimic altceva), opțiune de aliniere fereastră. Așa cum ne-am mutat anterior, sub forma de copii sub formă de auto-generat (Auto-crea) la disponibil (disponibile pe piață), vom avea nevoie de un cod care (element de meniu) va crea formulare pentru copii.
Deci, muta TMainMenu frMain componenta (MDI-mamă) și o aduce la forma:
Pentru a crea un element de meniu „Nou copil“ va fi folosit în aplicația noastră copil ferestre. Al doilea meniu (ferestre) vor fi utilizate pentru a alinia ferestrele copil în formă fereastra părinte.
Crearea și afișarea
În concluzie, avem nevoie pentru a face un handler pentru elementul de meniu „copil nou“. Când faceți clic pe meniul File Punk | Nou pentru copii a cererii noastre, va fi numită procedura NewChild1Click care, la rândul său, va duce la proceduri CreateChildForm (prezentate mai sus), pentru a crea (următoarea) formularul de exemplu frChild.
Forma copil nou creată va avea un titlu în formă de „Copil x“, unde x reprezintă numărul de forme de copii din interiorul formelor MDI așa cum este descris mai jos.
Atunci când se lucrează cu o aplicație care are interfață document cu mai multe, ar trebui să aibă întotdeauna o procedură care să acopere toate ferestrele copil.
Va trebui să efectueze controale pentru prezența informațiilor nesalvate în fiecare fereastră de copil. Pentru a rezolva această problemă este cel mai bine este de a utiliza handler eveniment OnCloseQuery.
Proprietăți MdiChildCount și MDIChildren
MdiChildCount citit doar de proprietate, care conține un număr de ferestre stabilit pentru copii. În cazul în care nu a fost creată, nici o fereastră copil, atunci această proprietate este setată la 0. Va trebui să utilizați adesea MdiChildCount împreună cu MDIChildren matrice. MDIChildren matrice conține referințe la obiecte TForm toate ferestrele copil.
Rețineți că MDIChildCount fereastra copil creat pentru prima dată este 1.
Delphi oferă cele mai multe comenzi care pot fi plasate în interiorul meniul Window. Următorul este un exemplu de asteptare cele trei metode principale pentru comenzile pe care le-am pus în aplicația noastră: