Anatomy of a Delphi Unit (Delphi för nybörjare)

Om du planerar att vara en bra Delphi-programmerare än ord som "gränssnitt", "implementering" och "använder" måste ha en speciell plats i din programmeringskunskap.

Delphi-projekt

När vi skapar en Delphi-applikation kan vi börja med ett tomt projekt, ett befintligt projekt eller en av Delphis applikations- eller formulärmallar. Ett projekt består av alla filer som behövs för att skapa vår målapplikation. 

Dialogrutan som dyker upp när vi väljer View-Project Manager låter oss få tillgång till formuläret och enheterna i vårt projekt. 

Ett projekt består av en enda projektfil (.dpr) som visar alla former och enheter i projektet. Vi kan titta på och till och med redigera projektfilen (låt oss kalla den a Projektenhet) genom att välja Visa - Projektkälla. Eftersom Delphi underhåller projektfilen, bör vi normalt inte behöva ändra den manuellt, och i allmänhet rekommenderas det inte för oerfarna programmerare att göra det.

Delphi-enheter

Som vi vet nu är former en synlig del av de flesta Delphi-projekt. Varje form i ett Delphi-projekt har också en tillhörande enhet. Enheten innehåller källkoden för alla eventhanterare som är kopplade till händelserna i formuläret eller de komponenter som den innehåller.

Eftersom enheter lagrar koden för ditt projekt är enheter det grundläggande i Delphi-programmering. Generellt sett är enhet en samling konstanter, variabler, datatyper och procedurer och funktioner som kan delas av flera applikationer.

Varje gång vi skapar en ny form (.dfm-fil) skapar Delphi automatiskt den tillhörande enheten (.pas-filen) låt oss kalla det en Formenhet. Men enheter behöver inte vara associerade med formulär. EN Kodenhet innehåller kod som anropas från andra enheter i projektet. När du börjar bygga bibliotek med användbara rutiner lagrar du dem antagligen i en kodenhet. För att lägga till en ny kodenhet i Delphi-applikationen väljer du File-New… Unit.

Anatomi

När vi skapar en enhet (form eller kodenhet) lägger Delphi till följande kodavsnitt automatiskt: enhetsrubrik, gränssnitt sektion, genomförande sektion. Det finns också två valfria avsnitt: initiering och slutförande.

Som ni ser måste enheterna vara i en fördefinierad format så att kompilatorn kan läsa dem och kompilera enhetens kod.

De enhetsrubrik börjar med det reserverade ordet enhet, följt av enhetens namn. Vi måste använda enhetens namn när vi hänvisar till enheten i användningsklausulen för en annan enhet.

Gränssnittsavsnitt

Detta avsnitt innehåller användningar klausul som visar de andra enheterna (kod- eller formulärenheter) som kommer att användas av enheten. När det gäller formenheter lägger Delphi automatiskt till standardenheter som Windows, Meddelanden osv. När du lägger till nya komponenter i ett formulär lägger Delphi till lämpliga namn i användarlistan. Delphi lägger dock inte till en användningsklausul till gränssnittsavsnittet för kodenheter - vi måste göra det manuellt.

I avsnittet enhetsgränssnitt kan vi förklara global konstanter, datatyper, variabler, procedurer och funktioner.

Var medveten om att Delphi bygger en formulärenhet för dig när du utformar en blankett. Formdatatypen, formvariabeln som skapar en instans av formuläret och händelseshanterarna deklareras i gränssnittsdelen. 

Eftersom det inte finns något behov av att synkronisera koden i kodenheter med en tillhörande form, behåller Delphi inte kodenheten för dig.

Gränssnittssektion slutar vid det reserverade ordet genomförande.

Implementeringsavsnitt

De genomförande avsnitt av en enhet är det avsnitt som innehåller den faktiska koden för enheten. Implementeringen kan ha ytterligare egna deklarationer, även om dessa deklarationer inte är tillgängliga för någon annan applikation eller enhet. Alla Delphi-objekt som deklareras här skulle endast vara tillgängliga för kod inom enheten (global till enhet). En valfri klausul för användning kan visas i implementeringsdelen och måste omedelbart följa implementeringssökordet.

Initierings- och slutavsnitt

Dessa två sektioner är valfria; de genereras inte automatiskt när du skapar en enhet. Om du vill initialize alla data som enheten använder kan du lägga till en initialiseringskod till initialiseringsavsnittet på enheten. När en applikation använder en enhet, anropas koden i enhetens initialiseringsdel innan någon annan applikationskod körs. 

Om din enhet behöver utföra någon sanering när applikationen avslutas, till exempel att frigöra resurser som tilldelats i initieringsdelen; du kan lägga till en slutförande avsnitt till din enhet. Avslutningsavsnittet kommer efter initieringsavsnittet, men innan det slutliga slutet.