.
Inprise
 Glavna stran
 Uvod
 Urejevalnik
 Rišimo
 Datoteke
 Baze
 Povezave

Jurij Petruna sonce@mailcity.com

December, 1999

     Postavimo se v imenik ..\Delphi\bin, kjer vidimo veè izvršljivih (*.EXE) datotek, povezanih s samim Delphijem. Za nas bosta najbolj zanimivi DCC32.EXE in DELPHI32.EXE .

  • DCC32.EXE - prevajalnik (compiler) za Delphi
  • DELPHI32.EXE - vizualno okolje za lažje programiranje - vstavljanje, uporabljanje in povezovanje gradnikov v programu (napisano je bilo kar v Delphiju samem)

 

     Sam prevajalnik sprejema kodo, napisano v treh formatih (*.PAS - izvorna koda posameznih enot programa (unit),  *.DPR - zaèetna datoteka nekega projekta in  *.DPK). Za  nadaljne delo se bom posvetil le prvima dvema.

Programiramo lahko na dva naèina: terminalsko ali okensko (uporaba vizualnih gradnikov).

 

     Terminalsko programiranje je najbolj podobno programiranju v jeziku Pascal, ki smo ga nekateri že vajeni. Zanj potrebujemo le navaden urejevalnik besedil (npr. kar dosovski EDIT.EXE ali okenski NOTEPAD.EXE) in seveda prevajalnik (DCC32.EXE). Prvi program, ki ga napišemo izgleda takole:

 

PRIMER 1:

Program pozdrav;                {zaèetek programa}

{$APPTYPE CONSOLE}              {sporoèilo prevajalniku}

var sporocilo : string;         {deklaracija spremenljivk}

begin

  sporocilo:= 'Pozdravljeni v novem Delphiju!!! Juhuhu!';

  WriteLn(sporocilo);           {izpis spermenljivke}

end.                           {konec programa}

 

     Napisano datoteko shranimo s konènico pozdrav.PAS ali pozdrav.DPR. Sedaj moramo izvorno kodo le še prevedemo z ukazom.

 

C:\Delphi\bin\DCC32 pozdrav.PAS

 

     Prevajalnik bo izvorno kodo prevedel in zapisal datoteko pozdrav.EXE. Izvedemo program tako, da odtipkamo pozdrav. Èe smo vse pravilno prepisali, mora stvar zagotovo delati. V nasprotnem primeru preverimo izvorno kodo še enkrat.

 

     Sedaj analizirajmo napisano kodo. Program spominja na program, napisan v Pascalu. Prva vrstica je klasièna. Ime, napisano v tej vrstici ob rezervirani besedi program in se mora ujemati z naslovom datoteke, v kateri je ta izvorna koda shranjena. To je tudi tisto ime, s katerim tudi zaženemo prevedeni program.

     V drugi vrstici pa se pojavi najveèja razlika (oz. dodatek). Z ukazom  {$APPTYPE CONSOLE} prevajalniku povemo, da je to program, ki teèe v terminalskem naèinu in ga lahko poženemo v ukazni vrstici (command line).

     Preostali del programa je klasièen. Ukaz WriteLn je definiran v enoti Standard in ga prevajalnik avtomatsko vkljuèi v vsako aplikacijo.

 

     V Delphiju je navada, da se podprogrami razdelijo na posamezne enote (units). V tem primeru bi program izgledal takole:

 

PRIMER 2:

1. datoteka

Program pozdrav;                {zaèetek programa}

{$APPTYPE CONSOLE}              {sporoèilo prevajalniku}

uses Unit1;

begin

  Napisi('Pozdravljeni v novem Delphiju!!! Juhuhu!');

end.                           {konec programa}

2. datoteka

unit Unit1;

interface

procedure Napisi(sporocilo:string);

implementation

procedure Napisi(sporocilo:string);

begin

  WriteLn(sporocilo);

end;

end.

 

     Prvi del programa shranimo v datoteko pozdrav.DPR (obvezno!), drugega pa v datoteko unit1.PAS. Program sedaj spet prevedemo:

 

C:\Delphi\bin\DCC32 pozdrav

 

     Ko programiramo s pomoèjo enot (units), mora imeti prvotna datoteka (pozdrav) obvezno konènico .DPR, saj gre za naslov projekta. Pri prevajanju konènice ni potrebno napisati, saj jo prevajalnik vzame za privzeto. Ostale enote (units), ki jih klièe,  pa morajo imeti konènice *.PAS.

     V programu Unit1.PAS je definirana procedura Napisi, ki jo klièemo iz programa pozdrav.DPR.

 

Klasièna oblika kode v enoti (unit) je naslednja:

 

    unit Unit1;

     

    interface

     

    implementation

     

    end.

 

     Zapis posameznih procedur in funkcij pod rezerviranim zapisom interface povzroèi, da so spodaj programirane procedure vidne v ostalih programih (v zgornjem primeru je to pozdrav.DPR), ki uporabljalo datoteko Unit1.PAS.  Pod rezerviranim zapisom implementation pa je zapisana programska koda le teh (v našem primeru Napisi).

     Razlika med proceduro in funkcijo je v tem,  da funkcija vrne vrednost glede na vhodno vrednost, ki jo vnesemo, ko funkcijo klièemo. Pri podprogramih (procedurah) se izvede le zaporedje ukazov, ki so zapisani v telesu podprograma..

     Pisanje  programov v terminalskem naèinu je primerno pri uèenju sintakse pascalskega tipa in pri preizkušanju in razvijanju raznih algoritmov, ki ne potrebujejo grafiènih vmesnikov. Èe pa bi radi napisali resno aplikacijo, se poslužimo moènih vizualnih orodij, ki nam jih nudi Delphi. Torej, lotimo se pisanja pravega okenskega programa. Jože požen!

 

BuiltByNOF