Rezumat: Se creează un formular în care sunt afișate informații detaliate despre membrul familiei, se afișează biografia acestuia și se afișează copacii strămoșilor și descendenților. Formularul conține trei file. Prima pagină conține informații din baza de date, cea de-a doua afișează copacii strămoșilor și descendenților (copacii sunt creați în cursul 6), al treilea afișează textul. Textul poate fi descărcat din fișier, editat și salvat. Același formular este utilizat pentru a adăuga informații în baza de date (a se vedea lecția 7).
Crearea unui formular
Formularul cu file se deschide când faceți clic pe butonul "Deschis" al ferestrei familyForm. Afișează informații despre membrii familiei selectați în listă, astfel încât ar trebui mai întâi să găsiți și să vă aduceți aminte de pointer la obiectul persoană. în care sunt stocate informații despre această persoană.
Listing 5.1. Definiția predicatului OnViewClick
În acest caz, predicatul getParent returnează un cursor la clasa taskWindow. În schimb, puteți folosi aplicația predicatăWindow :: get / 0, care întoarce întotdeauna un pointer la obiectul clasei taskWindow.
Deci, când faceți clic pe butonul "Deschidere", veți găsi mai întâi un pointer la obiectul elementului de listă selectat, apoi este reținut, apoi se va reaminti indicatorul spre obiectul ferestrei familyForm. după care se deschide formularul cu file și numele membrului selectat al familiei este înregistrat în linia de antet.
Apoi, paginile tab sunt create.
Creați o pagină de informații
Selectați folderul tabForm al arborelui proiectului, utilizați comanda meniu New In New Package pentru a deschide caseta de dialog Create Project Item. selectați elementul de control din acesta. în câmpul Nume vom scrie numele paginii: infoPage. Faceți clic pe butonul Creați. În bara de titlu a tabelului de proprietăți, introduceți textul marcajului: Informații. Am plasat pe pagină următoarele elemente de control (Figura 5.2 din Figura 5.2):
Text static "Nume", "Nume de familie", "Părinte", "Mama";
editați câmpurile:
Implicit, proprietatea Reprezentare a casetei de grup și textul static este setată la variabilă. Pentru blocul de grup "Sex" și inscripția "soți", valoarea sa ar trebui să fie schimbată în Variabila de fapt (vezi mai sus).
Butonul radio poate fi în două stări - verificat și nesecat. De la un set de comutatoare grupate într-un singur grup, poate fi pornit un singur comutator.
Pentru a afișa părinții, sunt utilizate listele derulante, deoarece în modul de adăugare sunt plasate listele de membri ai familiei, din care părinții sunt apoi selectați.
În mod similar, ar trebui să creați alte două pagini în tabele separate - treePage (Title.Trees) și descrPage (Title.). Aceste pagini vor fi completate mai târziu.
În interfața tabForm, declarați proprietatea familyForm. Se folosește pentru a stoca un pointer la un obiect fereastră, din care se deschide un formular cu filele (mai multe astfel de ferestre pot fi deschise).
Acum trebuie să modificați definiția constructorului nou / 1 în implementarea clasei tabForm. Creează pagini file.
Listing 5.3. Modificați definiția constructorului
Completarea paginii cu informații
Completăm prima pagină a filelor. În interfața infoPage, declarați o proprietate care stochează un pointer în obiectul bazei de date. precum și predicatul actualizării imaginii. care inițiază redraționarea imaginii atunci când se modifică forma formei.
În punerea în aplicare a InfoPage, trebuie să faceți modificări la definiția noului constructor. să declare faptele-variabile necesare și să definească actualizarea predicatului.
Listing 5.5. Parametrii de bază
Acum adăugați handleler-ul evenimentului ShowListener. Când fereastra se deschide, marginea paginii este completă.
Listing 5.6. Definirea predicatului onShow
Mai jos este definiția predicatelor care plasează informații în controale.
Listing 5.7. Completarea câmpurilor de informații
După cum sa menționat mai sus, dacă nu există informații despre soți în baza de date, lista nu este afișată (a se vedea Figura 5.3 din Figura 5.3).
Adăugați agenții de procesare a evenimentelor pentru a face clic pe butoanele left_ctl și right_ctl. Definiția acestor predicate este dată mai jos.
Listing 5.8. Definirea predicatului onLeftClick
Listing 5.9. Determinarea onRightClick predicat
Listing 5.10. Actualizarea imaginii la redimensionare
A doua pagină tab va fi populată mai târziu (în capitolul 6, "Copaci, pivot de masă"). Continuăm să completați a treia pagină (Figura 5.4 din Figura 5.4).
controlul utilizatorului (Clasa: sciLexer; Border: True);
Deschideți fișierul descrPage.pro și schimbați definiția noului constructor după cum se arată mai jos. În plus, declarați faptele-variabile pentru stocarea pointerului la obiectul bazei de date. numele fișierului și sistemul de codificare a caracterelor din acest fișier (Unicode sau nu).
Listarea 5.11. Modificați definiția constructorului
În acest caz, se utilizează predicatul post-activare, astfel încât, după imprimarea textului, se aplică un transfer automat de cuvinte pe linia următoare, dacă nu se potrivește în întregul câmp al ferestrei.
Mai jos este definiția predicatului onShow. Când se deschide pagina Descriere, acesta afișează textul din fișierul specificat în baza de date.
Listing 5.12. Definirea predicatului onShow
Când faceți clic pe butonul "Deschidere", se deschide fereastra "Deschide fișierul". Conținutul fișierului text selectat este afișat în fereastră.
Listing 5.13. Definirea predicatelor OOpenClick
Când faceți clic pe butonul "Salvați", se deschide fereastra "Salvați fișierul". Conținutul câmpului este scris în fișierul selectat.
Listing 5.14. OnSaveClick Predicate
De asemenea, puteți citi textul după cum urmează:
Predicatul procesării evenimentului pentru a da clic pe butonul "Amintiți-vă" va fi determinat mai târziu.
5.1. Creați o fereastră care conține două liste și un buton. În prima listă, numele relațiilor conexe ar trebui să fie enumerate: "părinte", "frate" etc. A doua listă ar trebui să fie goală. În plus, ar trebui să creați un buton pe formularul familyForm. când faceți clic pe care această fereastră ar trebui să se deschidă. După ce numele relației este evidențiată în prima listă, a doua listă ar trebui să afișeze o listă a rudelor corespunzătoare ale membrului familiei (în fereastra familyForm).
5.2. Creați o fereastră pentru a căuta baza de date utilizând expresii regulate (a se vedea clasa regEx). O expresie regulată este introdusă în câmpul de editare. Căutarea este efectuată în linii cu formularul "<имя> <фамилия> "Rezultatele trebuie afișate în listă.