Kuinka käyttää toimintoja ja menettelytapoja Delphissä

click fraud protection

Oletko koskaan löytänyt itsesi kirjoittamaan saman koodin yhä uudelleen ja suorittamaan joitain yleisiä tehtäviä sisällä tapahtumakäsittelijät? Joo! On aika oppia ohjelman sisällä olevista ohjelmista. Kutsutaan noita miniohjelmia aliohjelmiksi.

Aliohjelmien esittely

Aliohjelmat ovat tärkeä osa mitä tahansa ohjelmointikielijaDelfoi ei ole poikkeus. Delphissä on yleensä kahden tyyppisiä aliohjelmia: toiminto ja menettely. Tavanomainen ero funktion ja proseduurin välillä on, että funktio voi palauttaa arvon, eikä toimenpide yleensä tee niin. Toimintoa kutsutaan normaalisti lausekkeen osaksi.

Katso seuraavia esimerkkejä:

menettely Sano Hei(const sWhat:jono); alkaa
ShowMessage ('Hei' + sWhat); pää; toimia Vuotta vanha(const Syntymävuosi: kokonaisluku): kokonaisluku; var
Vuosi, kuukausi, päivä: sana; alkaa
DecodeDate (päivämäärä, vuosi, kuukausi, päivä); Tulos: = vuosi - syntymävuosi; pää; 

Kun aliohjelmat on määritelty, voimme soittaa heille yhden tai useamman kerran:

menettely TForm1.Button1Click (Lähettäjä: TObject); 
instagram viewer
alkaa SayHello ('Delphin käyttäjä'); pää; menettely TForm1.Button2Click (Lähettäjä: TObject); alkaa SayHello ('Zarko Gajic'); ShowMessage ('Olet' + IntToStr (YearsOld (1973)) + 'vuotias!'); pää;

Toiminnot ja menettelytavat

Kuten näemme, sekä toiminnot että menettelytavat toimivat kuin miniohjelmat. Erityisesti niillä voi olla oma tyyppinsä, vakiot ja muuttujat-ilmoitukset.

Katso tarkemmin (sekalaista) SomeCalc-toimintoa:

toimia SomeCalc. (const SSTR: jono; const iYear, iMonth: kokonaisluku; var iDay: kokonaisluku): boolean; alkaa...pää; 

Jokainen toimenpide tai toiminto alkaa merkinnällä ylätunniste joka identifioi proseduurin tai toiminnon ja luettelee parametrit rutiini käyttää, jos sellaista on. Parametrit on lueteltu suluissa. Jokaisella parametrilla on tunnistettava nimi ja yleensä tyyppi. Puolipiste erottaa parametriluettelossa olevat parametrit toisistaan.

sStr, iYear ja iMonth kutsutaan vakioparametrit. Vakioparametreja ei voi muuttaa toiminnolla (tai menettelyllä). IDay välitetään a var-parametri, ja voimme tehdä siihen muutoksia aliohjelman sisällä.

Koska funktioilla palautetaan arvot, niiden on oltava a paluu tyyppi ilmoitetaan otsikon lopussa. Funktion palautusarvo annetaan (lopullinen) tehtävä nimelle. Koska jokaisella funktiolla on epäsuorasti paikallinen muuttuja Tulos, joka on samantyyppinen kuin funktiot palauttavat arvon, tuloksella osoittamisella on sama vaikutus kuin toiminnon nimelle osoittamisella.

Aliohjelmien paikannus ja soittaminen

Aliohjelmat sijoitetaan aina yksikön toteutusosaan. Sellaisia ​​aliohjelmia voi kutsua (käyttää) tapahtumakäsittelijä tai aliohjelma samassa yksikössä, joka sen jälkeen määritetään.

Huomaa: yksikön käyttölause kertoo, mihin yksiköihin se voi soittaa. Jos haluamme, että yksikön1 tiettyä aliohjelmaa voi käyttää toisen yksikön tapahtumakäsittelijät tai aliohjelmat (esimerkiksi yksikkö2), meidän on:

  • Lisää yksikkö1 yksikön2 käyttölausekkeeseen
  • Sijoita kopio aliohjelman otsikosta Unit1: n rajapintaosaan.

Tämä tarkoittaa, että aliohjelmat, joiden otsikot on annettu käyttöliittymäosassa, ovat maailmanlaajuinen.

Kun kutsumme toimintoa (tai proseduuria) oman yksikön sisällä, käytämme sen nimeä millä tahansa parametrit tarvitaan. Toisaalta, jos kutsumme globaalia aliohjelmaa (määritelty jossain toisessa yksikössä, esim. MyUnit), käytämme yksikön nimeä, jota seuraa piste.

... // SayHello-menettely määritetään tämän yksikön sisällä
SayHello ('Delphin käyttäjä'); // YearsOld-toiminto määritetään MyUnit-yksikössä
Nukke: = OmaUnit. YearsOld (1973);... 

Huomaa: toiminnoilla tai menettelyillä voi olla omat aliohjelmansa upotettuna niiden sisälle. Upotettu aliohjelma on paikallinen säiliön aliohjelmassa, eikä sitä voida käyttää muissa ohjelman osissa. Vähän niin kuin:

menettely TForm1.Button1Click (Lähettäjä: TObject); toimia On pieni(const SSTR:jono): Boolean; alkaa// IsSmall palauttaa True, jos sStr on pienillä kirjaimilla, False muuten
Tulos: = LowerCase (sStr) = sStr; pää; alkaa// IsSmallia voidaan käyttää vain Button1 OnClick -tapahtuman sisälläjos IsSmall (Muokkaa1.teksti) sitten
ShowMessage ('Kaikki pienet kirjaimet Edit1.Text'ssä)
muu
ShowMessage ('Ei kaikki Edit1Text-sovelluksen kaikki pienet kirjaimet'); pää;
instagram story viewer