Cunoaște Intuit, de curs, aplicatii multiple

Rezumat: În acest capitol ne vom uita la crearea de aplicații multiscreen. În practică, să învețe cum să creeze un modal și ferestre non-modal. Noi studiem în detaliu crearea de SDI-interfață, o notă mică pe principii de MDI-interfață.







Scopul prelegerii

Aflați cum să creați aplicații de ferestre multiple folosesc ferestre modale și non-modale.

aplicatii multi-window

Până în prezent, suntem cu voi toate aplicațiile realizate cu o singură fereastră. În același timp, programele rare, care au doar o singură fereastră în programare modernă. Chiar si utilitati standard de simple cum ar fi calc.exe calculator sau jocul „Minesweeper“ - winmine.exe au mai multe ferestre. Am finalizat recent un proiect pentru aceeași organizație, proiectul poate fi considerat de complexitate medie, și conține 102 ferestre! În acest capitol, vom învăța cum să facă aplicații multi-window.

Există două tipuri de interfețe: SDI (interfață singur document - o singură interfață de documente) și MDI (Multi Document Interface - interfeței pentru documente multiple). SDI -applications de lucru simultan pe același document, -applications MDI proiectat pentru funcționarea simultană a mai multor documente similare. În acest caz, toate documentele sunt situate într-un singur container, care este, de obicei, forma principală. Microsoft nu recomandă utilizarea de interfețe MDI sunt, cu toate că ea le folosește într-o varietate de programe de servicii, cum ar fi console, cum ar fi Device Manager. În plus, dezvoltarea de aplicatii bazate pe MDI în Lazăr nu este pus în aplicare, astfel încât detaliile nu vom lua în considerare interfețele MDI sunt, deși scurte și atingeți pe acest subiect. Dar mai întâi - SDI.

Ferestrele SDI-app pot fi de două tipuri - modale și non-modale. Ele sunt create la fel, diferența este doar în procesul de retragere a acestor ferestre pe ecran. O fereastră modal blochează programul, nu-i permite să lucreze atâta timp cât nu închideți această fereastră. Un exemplu tipic al unei ferestre modal - fereastra „Despre“, care este prezent în aproape orice aplicație. Ca o regulă, o astfel de fereastră se află în meniul „Help“. Până când apăsați „OK“ pentru a închide această fereastră, nu puteți lucra cu programul principal.

Noi studiem lucrările diferitelor ferestre din exemple.

ferestre modale

Dacă vă amintiți, în „Notepad - codificator“ am făcut-o lucrare de laborator - notebook-cifru. Acolo ne-am furnizat în meniul meniul „Help“ „Despre“, dar fereastra nu. Este timpul pentru a rectifica această omisiune. Tu ar trebui să salvați proiectul în 18-01 folderul denumit listă de coduri. Asigurați-vă că Lazăr este închis și să încărcați fișierul CodeBook.lpi - un fișier proiect de informații. Ca rezultat, Lazăr este încărcat cu proiectul (cu același succes ar putea fi CodeBook.lpr de descărcare de fișiere).







Cunoaște Intuit, de curs, aplicatii multiple

În proprietatea Caption a formularului, scrie „Despre“.

Înlocuiți forma unui simplu bar TPanel. curățați Caption de proprietate. Pentru a face un cadru frumos al panoului, setați valoarea proprietății BevelInner bvLowered.

Panoul inferior, setați TBitBtn Paletele fila buton componente suplimentare. într-un buton de proprietate fel pentru a selecta bkOK.

Pentru a economisi spațiu, voi nu detaliu pentru a picta, cum să introduceți text în etichetă, modificați componentele în fonturi și dimensiuni - aveți o mare nevoie de a fi capabil să o faci singur. Ca urmare, ar trebui să obțineți ceva de genul această formă:

Cunoaște Intuit, de curs, aplicatii multiple


Fig. 20.2. Forma fAbout

Rețineți că, în toate componentele am ales fontul preferat - Times New Roman - puteți alege, de asemenea, propriul dvs., trebuie doar să alegeți dimensiunea corespunzătoare și greutatea.

Generează evenimentul OnClick pentru meniul de comanda „Help -> About“ (dacă vă amintiți de a face acest lucru, pur și simplu selectați comanda). Codul său este foarte simplu:

Metoda ShowModal. specificate în codul Geamul ecranului fAbout în modul modal. Până la fereastra este închisă, programul nu va fi rulat. După ce se închide, de control va fi transmis înapoi la program. Salvați proiectul, rulați-l și asigurați-vă că caseta „Despre“ se numește la cerere și închise cu butonul „OK“. Dar nu se grăbesc să închidă proiectul, avem încă nevoie de ea.

Vă mulțumim pentru cursul minunat!

Munca independentă №2 compila modul MyCript.pas (Sistem de operare: Windows 7 x64, Lazarus 1.4 Win64) a emis o eroare în codul de asamblare

mycript.pas (54,5) Eroare: Asm: [împinge reg32] combinație de invalid opcode și operanzi
mycript.pas (95,5) Eroare: Asm: [pop reg32] combinație nevalidă de Opcode și operanzi

Am înțeles că cursul este gata pentru 32-bit sistem de operare, dar ce se întâmplă în cazul sistemelor pe 64 de biți?

Handlerele FileCreate elemente din meniu și FileOpen, precum și închiderea handler forma OnClose - în aceste trei proceduri conțin același cod

le înainte de a crea noul text>
în cazul în care începe apoi Memo1.Modified
// daca utilizatorul este de acord pentru a salva modificările:
dacă MessageDlg ( 'Save As'
„Fișierul curent a fost modificat. Salvați modificările?
mtConfirmation, [mbYes, mbNo, mbIgnore], 0) = mrYes apoi
FileSaveClick (Sender);
se încheie; // dacă

Dați-mi voie să vă întreb: nu ar fi mai bine să facă acest cod într-o procedură separată, de exemplu - sub forma unui eveniment handler OnCloseQuery? Din câte îmi amintesc de experiența Delphi, numesc această procedură în sine nu ar trebui să conducă la închiderea formularului. Acest lucru înseamnă că acesta poate fi utilizat în procedurile de curățare Memo1 și citirea dintr-un fișier. Sau în Lazăr nu poți face?