Cum de a crea un fir în delphi 7
EXEMPLU crea o aplicație multithreaded în Delphi
Voi încerca să calculeze numărul „pi“, cu o precizie maximă după virgulă. Desigur, built-in Delphi
constanta Pi are o precizie suficientă, mai bine să spun - maximul permis de cel mai bun format de 10-octet pentru numere reale extinse. Deci, să o bată, nu vom reuși. Dar acest exemplu de fluxuri pot servi ca un prolog pentru a rezolva probleme reale.
Primul exemplu va cuprinde două fluxuri: principal (procesare date introduse de utilizator) și de calculator; putem schimba proprietățile lor și a vedea reacția. Deci, faceți următorii pași:
1. Deschideți meniul File și selectați New Application din Delphi.
2. Poziția în forma a cinci mărci și un comutator, așa cum se arată în Fig. 1.
Redenumiți formularul principal în fmMain.
3. Deschideți meniul File și selectați Save Project As. Salvați modulul ca uMain, iar proiectul - ca firele.
Figura 1. Aspectul formularelor de cerere pentru fire
4. Deschideți meniul File și selectați Nou. Apoi, faceți dublu clic pe un obiect, cum ar fi un flux (pictograma Object fir). Deschide caseta de dialog Elemente noi, așa cum se arată în Fig. 2.
Figura 2. Fereastra de dialog Elemente noi cu tipul de obiect selectat „debit“
Figura 3. Fereastra de dialog New Object Subiect
5. Când vi se solicită pentru a denumi fluxul de dialog obiect, introduceți TPiThread și apăsați (Fig. 3). În plus, dacă doriți, aveți posibilitatea să atribuiți un nume pentru a crea un flux prin setarea caseta Subiect cu numele și introducând un nume în câmpul Nume Subiect A. Deoarece numele fluxului este folosit doar pentru a se referi la comoditatea, această oportunitate nu va fi folosit.
Delphi va crea un nou modul, și plasați șablonul pentru noul fir.
6. Codul introdus în metoda Execute, calculează numărul de I, folosind convergența unei serii infinite de Leibniz:
Pi = 4 - 4/3 + 4/5 - 4/7 + 4/9 -.
Desigur, pentru a afișa noua valoare după fiecare iterație - este aceeași cu cea a trage dintr-un tun de pe volan. Pe sistemul de afișare a informațiilor va cheltui de zece ori mai mult timp decât calcul actuale. Prin urmare, am introdus updatePeriod constantă, care reglează frecvența valorii curente.
Executa cod metodă este prezentată mai jos:
// Mai bine utilizați un număr impar, pentru a evita efectul de flicker // UpdatePeriod = 1000001;
7. Deschideți meniul File și selectați Save As. Salvați modulul cu fluxul ca uPiThread.pas.
8. Editați fișierul principal și adăugați uMain.pas modulul modulul uPiThread la lista modulelor folosite în secțiunea de interfață. Ar trebui să arate astfel:
9. În forma secțiune publică TfmMain adăuga un link la un subiect creat de către: PiThread. TPiThread;
10. Se adaugă un modul uMain două variabile globale
Această metodă, dacă ați fost atent, este numit din fluxul prin procedura Sincronizați. Se afișează valoarea curentă mai aproape de numărul „pi“ și numărul de iterații.
Dacă fereastra principală este minimizată, ecranul nu se realizează; astfel încât după ce a fost implementat, va trebui să aștepte ceva timp pentru o actualizare.
11. Faceți dublu clic pe o zonă goală a formei spațiului de lucru este creat cu FormCreate metoda șablon. Aici vom afișa valoarea sistemului p ± constanta:
12. Faceți clic pe forma comutatorului (numele cbcalcuiate) și evenimentul Alocați codul Onclick care creează și distruge firul de calcul, în funcție de starea comutatorului:
Astfel, o aplicație multi-let este gata pentru a rula. Dacă totul merge bine, veți vedea o imagine similară cu cea prezentată în Fig. 4.
Aplicații Figura 4. alerga Subiecte
- Nicolae „Vă mulțumesc. Pe termen lung a căutat ceva de genul asta. Numai acest cod a venit pentru script-magazin ver2 gratuit
Mă odihnesc în timpul liber
Multi-site pe WordPress
- Marina „Bună ziua! Podsk azhite, te rog, dacă eu sunt un incepator nu este dificil. Recent, a lansat un site web cu probleme de femei pe WordPress (acolo în timp ce perechea.
- TruLander »Marina este sfatul meu pentru tine, dacă nu înțelegi esența reprelucrare, mai bine face 2 site separat, va fi mai ușor, cu atât mai mult.
- Marina „Vă mulțumesc foarte mult!