Învățați să programați în Delphi - Unirea calculatorului împreună

învățați

Autor: Camioane

Bine ați venit la ultimul episod din seria „Învață să programezi cu Starter”. În primele patru episoade am tratat „Introducere și instalare” a ediției gratuite Delphi Starter, apoi ne-am mutat 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”.

Există, de asemenea, seria „Învață să programezi în C ++” scrisă de David Millington, Manager de produs C ++ Builder, care a terminat deja seria cu postarea finală pe blog care acoperă operatorii C ++ și aplicația finală.

Codificarea în C ++ și Object Pascal este diferită. Inițial am fost tentat să implementez calculatorul aici în „felul meu”, dar mi-am dat seama că pentru unii dezvoltatori ar putea fi interesant să puteți compara modul în care cele două limbi pot fi utilizate pentru a implementa același UI și cod. proiecta. În consecință, am modificat ușor UI-ul calculatorului pe care l-am creat în episodul anterior, astfel încât să se potrivească cu cel al lui David.

Codul sursă final al proiectului „Delphi Super Calculator” poate fi descărcat de pe Amazon S3.

Structura aplicației

Iată captura de ecran de la Managerul de proiect și puteți vedea că proiectul calculatorului conține un formular principal și cinci unități cu cod.

Î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. Încercând să se potrivească cu designul lui David, am adăugat la proiectul meu o nouă unitate „uInterfaces” și am definit două interfețe acolo. Un „ICalculator” pe care îl implementează clasa „TCalculator” și un „ICalculatorDisplay” care este implementat de formularul principal. Aceste două interfețe sunt singurul mod prin care UI comunică cu logica aplicației.

Puteți elimina codul de eșantion din clasa „TCalculator” care a fost adăugat mai devreme în scopuri demonstrative și putem începe să implementăm calculatorul în mod real.

Clasa noastră „TCalculator” implementează o interfață și de aceea nu poate fi moștenită direct din „TObject”, dar trebuie derivată din „TInterfacedObject” care este clasa de bază pentru toate clasele Delphi care implementează interfețe. Dacă nu specificați clasa de bază pentru obiectul dvs., veți fi moștenit de la „TObject”. În mod similar, toate interfețele Delphi derivă din „IInterface”, iar clasa „TInterfacedObject” implementează doar aceste metode moștenite. Constructorul clasei noastre „TCalculator” ia o referință la „ICalculatorDisplay” și îl stochează în câmpul privat, astfel încât orice calculator de timp trebuie să afișeze ceva, poate apela doar metoda „UpdateUI” și trece șirul care va fi afișat. Acesta este un design bun. Clasa de calculatoare știe cât mai puțin despre UI. Trebuie doar să poată trece un șir pentru afișare. Acesta ar putea fi un FireMonkey, VCL sau poate chiar o aplicație pentru consolă.