170 likes | 332 Views
Programmeerimine Delphi keskkonnas MTAT.03.214. Jelena Zaitseva jellen@ut.ee. Uus Windows rakendus. File New Application. Uus Windows rakendus. Rakenduse failid: .dpr : projekti fai l; programmi nn. k ompilleerimise lähtepunkt ;
E N D
Programmeerimine Delphi keskkonnasMTAT.03.214 Jelena Zaitseva jellen@ut.ee
Uus Windows rakendus • File New Application
Uus Windows rakendus • Rakenduse failid: • .dpr : projekti fail; programmi nn. kompilleerimiselähtepunkt; • .pas: mooduli fail. Iga mooduli kohtatekitab kompillaator samanimelise .dcu faili; • .dcu: kompilleeritud moodul; • .dfm: vormi fail, kus kirjeldatakse akna visuaalne väljanägemine;sama nimi, mis sedakasutaval moodulil; • .res: kompilleeritud ressursi fail; võib sisaldada suvalisi andmeid, mis lingitakse programmikoodi; • .dof: projekti sätete fail, mis isaldab kompillaatori ja linkuri sätteid,moodulite katalooge, versiooni infot jm. • .cfg: projekti konfiguratsiooni fail, milles salvestataksekonfiguratsiooni asetused.
Klassid ja objektid • Kolm põhiprintsiipi • Kapseldus – andmete ja nende töötlemiseks vajalike alamprogrammide klassi ühendamine • Pärimine – iga klass võib olla tekitatud teisest klassist • Polümorfism võimaldab kasutada samasuguseid meetodite nimesid, mis paiknevad erinevates klassides
Klassid ja objektid • Üldjuhul klassi defineerimine toimub järgmiselt: type <klassi nimi> = class (<vanema klassi nimi>) private <elementide kirjeldused, mis on kättesaadavad ainult sel moodulil> protected <elementide kirjeldused, mis on kättesaadavad klassides-järglastes> public <üldkättesaadavate elementide kirjeldus> published <elementide kirjeldused, mis on kättesaadavad Object Inspector-is> end;
Klassid ja objektid • Väljad – klassis kapseldatud andmed type TChildClass = class FOne : Integer; FTwo : String; FThree : TObject; end; • Väljade poole pöördumine: var MyObject : TChildClass; begin MyObject.FOne := 12; MyObject.FTwo := ’Hello, world’; end; Tegelikult, väljadele otsene pöördumine ei ole hea...
Klassid ja objektid • Meetodid – klassis kapseldatud protseduurid ja funktsioonid type TChildClass = class FOne : Integer; FTwo : string; FThree : TObject; function FirstFunc(ANumber: Double): Double; procedure SecondProc; end;
Klassid ja objektid • Meetodid • Staatilised meetodid type TNewClass = class procedure NewProcedure; end;
Klassid ja objektid • Meetodid • Staatilised meetodid • Virtuaalsed meetodid type TNewClass = class procedure NewProcedure; virtual; end;
Klassid ja objektid • Meetodid • Staatilised meetodid • Virtuaalsed meetodid • Dünaamilised meetodid type TNewClass = class procedure NewProcedure; dynamic; end;
Klassid ja objektid • Meetodid • Staatilised meetodid • Virtuaalsed meetodid • Dünaamilised meetodid • Ülekaetud meetodid type TNewClass = class procedure NewProcedure; virtual; end; TNewClassChild = class(TNewClass) procedure NewProcedure; override; end;
Klassid ja objektid • Meetodid • Staatilised meetodid • Virtuaalsed meetodid • Dünaamilised meetodid • Ülekaetud meetodid • Abstraktsed meetodid type TNewClass = class procedure NewProcedure; virtual; abstract; end;
Klassid ja objektid • Meetodid • Staatilised meetodid • Virtuaalsed meetodid • Dünaamilised meetodid • Ülekaetud meetodid • Abstraktsed meetodid • konstruktor ja destruktor type TNewClass = class constructor Create; destructor Destroy; end;
Klassid ja objektid • Meetodid • Staatilised meetodid • Virtuaalsed meetodid • Dünaamilised meetodid • Ülekaetud meetodid • Abstraktsed meetodid • konstruktor ja destruktor • Klassi meetodid type TNewClass = class class procedure NewProcedure; end;
Klassid ja objektid • Omadus – väljadele juurdepääsu reguleerimise mehhanism type TStudent = class private FAge: Integer; protected function GetAge: Integer; procedure SetAge(Value: Integer); published property Age: Integer read GetAge write SetAge; end;
Klassid ja objektid • Sündmus – on protseduurse tüübi omadus ning tema väärtuseks on viide meetodile type TNewClass= class private FOnDblClick: TNotifyEvent; protected property OnDblClick: TNotifyEvent read FOnDoubleClick write FOnDblClick; end;