Învață să programezi cu Delphi Community Edition Partea 5 - Asamblarea calculatorului - Comunitate

învață

Bine ați venit la ultimul episod din seria „Învățați să programați cu Delphi Community Edition”. În primele patru episoade am tratat „Introducere și instalare” a Delphi Community Edition gratuită, apoi am trecut la elementele de bază IDE din „Construirea în depanare”. În „Arhitectură și straturi de cod” au fost discutate conceptele cheie ale structurii adecvate a aplicațiilor și în ultimul episod am început „Proiectarea interfețelor utilizatorului”.

În episodul anterior am creat proiectul calculatorului cu formularul principal cu 20 de butoane și o etichetă care acționează ca un „afișaj”. Este foarte important să separați codul interfeței de utilizator de logica aplicației. Cel mai bun mod de a realiza această separare este prin utilizarea interfețelor. Cu toate acestea, acest lucru ar adăuga un pic prea multă complexitate pentru o serie inițială, așa că aș prefera să rămân la scrierea unei clase separate cu logica calculatorului.

În primul rând, am adăugat două noi tipuri de date la unitatea uCalculator. Prima este o enumerare, ca listă de valori valabile pentru „operațiunea” calculatorului. A doua este clasa reală cu logica definită în câteva metode și informațiile de stare, reprezentate de câteva câmpuri, ca orice clasă bună care urmează abordare orientată obiect:

Câmpurile sunt folosite pentru a stoca șirul de intrare curent pe care îl tastează utilizatorul, totalul până acum (de la operațiile anterioare), operațiunea solicitată (care urmează să fie aplicată următoarei perechi de valori) și un steag boolean care indică dacă afișajul trebuie să afișeze valoarea de intrare sau cel mai recent total (ceva ce vom face după ultima operație, dar înainte ca intrarea să înceapă din nou).

Metodele au roluri diferite. Cele două operații de adăugare, NewOperator și CalcTotal sunt implicate direct atunci când diferitele butoane sunt apăsate în interfața de utilizare. AddDigit ar trece doar cifra butonului care a fost apăsat, iar NewOperation ar face același lucru pentru operație, declanșând calculul valorii curente de intrare. Iată codul lor: