13
C# C# Autori: Nebojša Lazarević, prof.informatike

[PPT]DELPHIlazanebo.pro/wp-content/uploads/2015/10/DELPHI-6-C.ppt · Web viewKlasa je korisnički definisan tip podataka koji sadrži interne podatke i metode u formi procedura i

Embed Size (px)

Citation preview

C#C#

Autori: Nebojša Lazarević, prof.informatike

Proceduralno programiranje – Proceduralno programiranje – Procedura ili funkcija je skup specifičnih instrukcija, Procedura ili funkcija je skup specifičnih instrukcija, izvršavaju se jedna za drugom. Podaci su bili potpuno odvojeni od procedura i izvršavaju se jedna za drugom. Podaci su bili potpuno odvojeni od procedura i programiranje se sastojalo u vođenju evidencije o tome koje funkcije i koji pozivi programiranje se sastojalo u vođenju evidencije o tome koje funkcije i koji pozivi funkcija utiču na promenu podatakafunkcija utiču na promenu podatakaStrukturno programiranje – Strukturno programiranje – Na računarski program treba posmatrati kao da se Na računarski program treba posmatrati kao da se sastoji od skupa poslova. Svaki posao koji je suviše složen je potrebno razbijati na sastoji od skupa poslova. Svaki posao koji je suviše složen je potrebno razbijati na skupove manjih poslova. Strukturno programiranje još uvek predstavlja veoma skupove manjih poslova. Strukturno programiranje još uvek predstavlja veoma uspešan prilaz rešavanju kompleksnih problema.uspešan prilaz rešavanju kompleksnih problema.Objektno orijentisano programiranje (OOP) –Objektno orijentisano programiranje (OOP) – U osnovi objektno orjentisanog U osnovi objektno orjentisanog programiranja leži ideja objedinjavanja u jednoj strukturi podataka i akcija nad njima programiranja leži ideja objedinjavanja u jednoj strukturi podataka i akcija nad njima (koje se u terminologiji OOP nazivaju metode) tj. pri ovakvom pristupu organizaciji (koje se u terminologiji OOP nazivaju metode) tj. pri ovakvom pristupu organizaciji podataka postoji tešnja veza između podataka i akcija. Objektno orjentisano podataka postoji tešnja veza između podataka i akcija. Objektno orjentisano programiranje se bazira na tri osnovna pojma:programiranje se bazira na tri osnovna pojma:

Enkapsulacija i skrivanje podataka Enkapsulacija i skrivanje podataka (kombinovanje podataka sa (kombinovanje podataka sa procedurama i funkcijama gde se kao rezultat dobija novi tip koji se naziva procedurama i funkcijama gde se kao rezultat dobija novi tip koji se naziva klasa. klasa. Enkapsulacija omogućava da se korisnicima klase ograniči pristup Enkapsulacija omogućava da se korisnicima klase ograniči pristup poljimapoljima(promenljivima I podacima)(promenljivima I podacima) i metodima klasa i metodima klasa(funkcijama I (funkcijama I procedurama)procedurama).).)

Nasleđivanje Nasleđivanje (mogućnost korišćenja već definisanih klasa za građenje (mogućnost korišćenja već definisanih klasa za građenje hijerarhije klasa gde svaki “naslednik” nasleđuje opise podataka hijerarhije klasa gde svaki “naslednik” nasleđuje opise podataka “praroditelja” i pristup metodama njihove obrade.“praroditelja” i pristup metodama njihove obrade.

Polimorfizam Polimorfizam (mogućnost definisanja jedinstvenog po imenu metoda (f-je ili (mogućnost definisanja jedinstvenog po imenu metoda (f-je ili procedure), primenljivog istovremeno na svim klasama hijerarhije procedure), primenljivog istovremeno na svim klasama hijerarhije nasleđivanja, pri čemu svaka od klasa može naznačiti specifičnosti nasleđivanja, pri čemu svaka od klasa može naznačiti specifičnosti realizacije te akcije.)realizacije te akcije.)

Program za administraciju i kontrolu umreženih računarskih sistema

Istorijat programiranjaIstorijat programiranja

ProgramProgram je skup naredbi napisanih od strane programera ili izvršni softver. Reč je skup naredbi napisanih od strane programera ili izvršni softver. Reč program se koristi u dva značenja: da opiše pojedinačne instrukcije tj. Izvorni kod koji program se koristi u dva značenja: da opiše pojedinačne instrukcije tj. Izvorni kod koji je kreirao programer i da opiše softver u celini. je kreirao programer i da opiše softver u celini.

Izvorni kod se može transformisati u izvršni na dva načina: Izvorni kod se može transformisati u izvršni na dva načina: InterpretatoriInterpretatori direktno prevode izvorni kod u računarske instrukcije i računar ih direktno prevode izvorni kod u računarske instrukcije i računar ih izvršava neposredno. izvršava neposredno. PrevodiociPrevodioci uvode dodatne korake prevođenja i povezivanja koda uvode dodatne korake prevođenja i povezivanja koda..

EditorEditor PrevodiPrevodilalacc

PovezivačPovezivač PunilacPunilac

SourceSource Program.objProgram.obj

OS

F-je

Program.exeProgram.exe RAMRAM

DebDebuguggerger

Program za administraciju i kontrolu umreženih računarskih sistema

Osnove Osnove programiranjaprogramiranja

NivoiNivoi pprogramrogramskeske rrepreeprezzentaentacijecije

Compiler

Assembler

Mašinska interpretacija

temp = v[k];v[k] = v[k+1];v[k+1] = temp;

lwlw $15,$15, 0($2)0($2)lwlw $16,$16, 4($2)4($2)swsw $16,$16, 0($2)0($2)swsw $15,$15, 4($2)4($2)

0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111

ALUOP[0:3] <= InstReg[9:11] & MASK

Program u VPJ

Program u asembleru

Mašinski program

Specifikacija kontrolnih signala

Jezik registrarskog prenosa

Apstrakcije

C# C# je objektno-orijentisani programski jezik (je objektno-orijentisani programski jezik (OOPOOP) koji koristi ) koji koristi vizuelne vizuelne funkcije funkcije kao proširenje standardnog kao proširenje standardnog C jezika C jezika omogućavajući na vrlo lak način omogućavajući na vrlo lak način projektovanje grafičkog korisničkog interfejsa (projektovanje grafičkog korisničkog interfejsa (GUIGUI) u skladu sa specifikacijama koje ) u skladu sa specifikacijama koje je postavila firma Microsoft upotrebom koncepata vizuelnog programiranja. Osnovni je postavila firma Microsoft upotrebom koncepata vizuelnog programiranja. Osnovni element svake Windows aplikacije je element svake Windows aplikacije je formaforma – kontejner u koji se smeštaju vizuelne i – kontejner u koji se smeštaju vizuelne i nevizuelne komponente (dugmad (Buttons), meniji (Menus), liste, polja za odabir itd). nevizuelne komponente (dugmad (Buttons), meniji (Menus), liste, polja za odabir itd). Za svaki od objekata je definisano mnoštvo događaja na koje se može reagovati Za svaki od objekata je definisano mnoštvo događaja na koje se može reagovati aktivirajući procedure ili funkcije za obradu tih događaja koje sadrže odgovarajući aktivirajući procedure ili funkcije za obradu tih događaja koje sadrže odgovarajući programski kod.programski kod.

Inicijalizacija Inicijalizacija proceduraprocedura

Procedura 1Procedura 1

Procedura nProcedura n

Analiza podataka

...

Program standardne arhitekture - DOS

InicijalizacijaInicijalizacija

Obrada Obrada događajadogađaja

DeinicijalizacijaDeinicijalizacija

Procedura 1Procedura 1

Procedura nProcedura n

...Događaji

Program zasnovan na događajima – Windows platforma

Osnove objekto-orijentisanog programiranjaOsnove objekto-orijentisanog programiranja

Program za administraciju i kontrolu umreženih računarskih sistema

I Uvod u klase i objekteI Uvod u klase i objekteTemelj Temelj OOPOOP je predstavljen ključnom rečju je predstavljen ključnom rečju class. class. Klasa je korisnički definisan tip podataka Klasa je korisnički definisan tip podataka koji sadrži interne podatke i metode u formi procedura i funkcija i obično opisuje generičke koji sadrži interne podatke i metode u formi procedura i funkcija i obično opisuje generičke karakteristike i ponašanje velikog broja sličnih objekata.karakteristike i ponašanje velikog broja sličnih objekata.Objekat (Objekat (ObjectObject) je instanca klase, ili promenljiva tipa podataka definisanog klasom i ) je instanca klase, ili promenljiva tipa podataka definisanog klasom i predstavljaju stvarne entitete koji zauzimaju deo memorije za svoje potrebe. Veza između predstavljaju stvarne entitete koji zauzimaju deo memorije za svoje potrebe. Veza između objekata i klasa je jednaka vezi između promenljive i tipa podataka. Svaki put kada se objekata i klasa je jednaka vezi između promenljive i tipa podataka. Svaki put kada se eksplicitno pravi objekat u kodu aplikacije je potrebno i osloboditi ga jer se u suprotnom eksplicitno pravi objekat u kodu aplikacije je potrebno i osloboditi ga jer se u suprotnom memorija koju koristi objekat neće osloboditi.memorija koju koristi objekat neće osloboditi.Metodi (Metodi (MetodsMetods) su veoma slični procedurama i funkcijama ali je suštinska razlika u tome što ) su veoma slični procedurama i funkcijama ali je suštinska razlika u tome što metodi sadrže implicitni parametar metodi sadrže implicitni parametar SelfSelf, koji predstavlja referencu tj. pokazivač na aktuelni , koji predstavlja referencu tj. pokazivač na aktuelni objekat koji ih je pozvao. objekat koji ih je pozvao. – akcije kojima se opisuje funkcionalnost objekta– akcije kojima se opisuje funkcionalnost objektaAtributiAtributi (Atributs) su osobine vazne za process koji pratimo. (Atributs) su osobine vazne za process koji pratimo.SvojstvaSvojstva (Properties) je mehaniyam kojim se obezbedjuje pristup atributima objekta I (Properties) je mehaniyam kojim se obezbedjuje pristup atributima objekta I odredjuju nove karakteristike na osnovu njegovih atributa.odredjuju nove karakteristike na osnovu njegovih atributa.Konstruktor (Konstruktor (ConstructorConstructor) je specijalni metod koji se može upotrebiti nad klasom da bi se ) je specijalni metod koji se može upotrebiti nad klasom da bi se postavila memorija za objekat pozivanjem metoda postavila memorija za objekat pozivanjem metoda Create.Create. Postoji unapred određeni Postoji unapred određeni konstruktor konstruktor TObject.Create TObject.Create koji inicijalizuje sve podatke nove instance na nulu. Ukoliko se koji inicijalizuje sve podatke nove instance na nulu. Ukoliko se želi ne nulto inicijalizovanje instance potrebno je napisati svoj konstruktor upotrebom ključne želi ne nulto inicijalizovanje instance potrebno je napisati svoj konstruktor upotrebom ključne reči reči constructor.constructor.Destruktor (Destruktor (DestroyDestroy) je specijalni metod deklarisan ključnom rečju ) je specijalni metod deklarisan ključnom rečju destructor destructor kojim se kojim se obavlja oslobađanje memorije i resursa pre nego što se objekat ukloni. Uklanjanje objekata obavlja oslobađanje memorije i resursa pre nego što se objekat ukloni. Uklanjanje objekata je moguće izvesti pozivom metode je moguće izvesti pozivom metode FreeFree kojim se proverava da tekući objekat ( kojim se proverava da tekući objekat (SelfSelf) nije ) nije nilnil pre nego što se pozove virtuelni destruktor pre nego što se pozove virtuelni destruktor DestroyDestroy..Preopterećeni (Preopterećeni (OverloadOverload) metodi i konstruktori omogućavaju postojanje više metoda istog ) metodi i konstruktori omogućavaju postojanje više metoda istog naziva, ukoliko imaju različite parametre u broju ili tipu gde kompajler odlučuje koja verzije naziva, ukoliko imaju različite parametre u broju ili tipu gde kompajler odlučuje koja verzije rutine se poziva. Iza svake verzije metoda mora slediti ključna reč rutine se poziva. Iza svake verzije metoda mora slediti ključna reč overload.overload.

Program za administraciju i kontrolu umreženih računarskih sistema

Enkapsulacija (Enkapsulacija (EncapsulationEncapsulation) omogućava skrivanje podataka unutar klase koja ih ) omogućava skrivanje podataka unutar klase koja ih koristi gde svaka jedinica (modul) ima dva osnovna dela: interfejs (koristi gde svaka jedinica (modul) ima dva osnovna dela: interfejs ( interfaceinterface) i ) i implementacija (implementacija (implementationimplementation). Svaki identifikator (rutina, promenljiva ili nesto ). Svaki identifikator (rutina, promenljiva ili nesto drugo) koji se deklariše u interfejs odeljku jedinice postaje dostupan bilo kojoj jedinici drugo) koji se deklariše u interfejs odeljku jedinice postaje dostupan bilo kojoj jedinici programa ukoliko postoji iskaz programa ukoliko postoji iskaz usesuses. Sve rutine i metodi deklarisane u interfejs bloku . Sve rutine i metodi deklarisane u interfejs bloku jedinice moraju kasnije biti u potpunosti definisane u implementacionom odeljku iste jedinice moraju kasnije biti u potpunosti definisane u implementacionom odeljku iste jedinice. Sa druge strane, svaki identifikator koji je deklarisan u implementacionom jedinice. Sa druge strane, svaki identifikator koji je deklarisan u implementacionom odeljku jedinice se ne može koristiti van te jedinice u kojoj je deklarisan.odeljku jedinice se ne može koristiti van te jedinice u kojoj je deklarisan.

Za enkapsulaciju na osnovu klasa postoje tri specifikatora pristupa:Za enkapsulaciju na osnovu klasa postoje tri specifikatora pristupa: Direktiva Direktiva private private – označava polja i metode klase kojima se ne može pristupiti van – označava polja i metode klase kojima se ne može pristupiti van

jedinicejedinice Direktiva Direktiva protected protected se koristi da označi metode i polja sa ograničenom vidljivošćuse koristi da označi metode i polja sa ograničenom vidljivošću Direktiva Direktiva public public označava polja i metode kojima se može slobodno pristupati iz bilo označava polja i metode kojima se može slobodno pristupati iz bilo

kog dela programakog dela programaEnkapsulacija pomoću svojstva omogućava direktno mapiranje na podatke Enkapsulacija pomoću svojstva omogućava direktno mapiranje na podatke

ili metode radi čitanja i zapisivanja njihovih vrednosti korišćenjem ključnih reči ili metode radi čitanja i zapisivanja njihovih vrednosti korišćenjem ključnih reči property property za naziv svojstva i direktiva za naziv svojstva i direktiva read read i i write write za promenu vrednosti.za promenu vrednosti.

IIII Enkapsulacija Enkapsulacija

Program za administraciju i kontrolu umreženih računarskih sistema

III NasleđivanjeIII Nasleđivanje

Nasleđivanje (Nasleđivanje (InheritanceInheritance) omogućava definisanje nove klase direktno iz postojeće i ) omogućava definisanje nove klase direktno iz postojeće i čini jedan od fundamentalnih elemenata OOP jezika.čini jedan od fundamentalnih elemenata OOP jezika.

typetypeTForm1 = TForm1 = class class (TForm)(TForm)

end;end; Ova jednostavna definicija označava da klasa TForm1 nasleđuje sve metode, polja, Ova jednostavna definicija označava da klasa TForm1 nasleđuje sve metode, polja,

svojstva i događaje od klase TForm. Može se upotrebiti bilo koji javni metod klase svojstva i događaje od klase TForm. Može se upotrebiti bilo koji javni metod klase TForm nad objektom tipa TForm1.TForm nad objektom tipa TForm1.Klasa od koje se nasleđuje je tzv. Klasa od koje se nasleđuje je tzv. roditelj roditelj ((parentparent) ili ) ili predak predak ((ancestorancestor) dok je klasa ) dok je klasa koja nasleđuje koja nasleđuje naslednik naslednik ((descendantdescendant) ili ) ili dete – klasa dete – klasa ((child classchild class). Objekat klase ). Objekat klase naslednikanaslednika može se koristiti svaki put kada se očekuje objekat klase može se koristiti svaki put kada se očekuje objekat klase pretkapretka dok dok obratno nije dozvoljeno.obratno nije dozvoljeno.

TObjectTObject

TFormTForm

TForm1TForm1

...

Program za administraciju i kontrolu umreženih računarskih sistema

IV Kasno povezivanje i polimorfizamIV Kasno povezivanje i polimorfizam

Funkcije i procedure Pascala se zasnivaju na Funkcije i procedure Pascala se zasnivaju na statičkomstatičkom ( (static bindingstatic binding) ili ) ili ranom povezivanju ranom povezivanju ((early bindingearly binding) što znači da poziv metodu rešava kompajler koji ) što znači da poziv metodu rešava kompajler koji zamenjuje zahtev pozivom određene memorijske adrese na kojoj se nalazi funkcija ili zamenjuje zahtev pozivom određene memorijske adrese na kojoj se nalazi funkcija ili procedura.procedura.

Polimorfizam (Polimorfizam (polymorphismpolymorphism) je tehnika ) je tehnika dinamičkog povezivanjadinamičkog povezivanja ((dynamic bindingdynamic binding) ili ) ili kasnog povezivanja. kasnog povezivanja. U ovom slučaju stvarna adresa metoda U ovom slučaju stvarna adresa metoda koji treba pozvati se određuje u vreme izvršavanja na osnovu tipa instance klase koja koji treba pozvati se određuje u vreme izvršavanja na osnovu tipa instance klase koja je upotrebljena za poziv. U slučaju OOP-a, polimorfizam se odnosi na činjenicu da je upotrebljena za poziv. U slučaju OOP-a, polimorfizam se odnosi na činjenicu da postoji nekoliko verzija konkretnog metoda sa istim parametrima u nekoliko klasa i da postoji nekoliko verzija konkretnog metoda sa istim parametrima u nekoliko klasa i da se metod u “roditeljskoj” klasi definiše kao virtuelni upotrebom ključne reči se metod u “roditeljskoj” klasi definiše kao virtuelni upotrebom ključne reči virtual, virtual, a a za zaobilaženje kasnog povezivanja metoda u klasi “nasledniku” treba upotrebiti za zaobilaženje kasnog povezivanja metoda u klasi “nasledniku” treba upotrebiti ključnu reč ključnu reč override. override. Virtualni metod je zasnovan na tabeli Virtualni metod je zasnovan na tabeli virtualnih metoda virtualnih metoda ((virtual virtual method table – VMTmethod table – VMT) koja je zapravo niz adresa metoda. ) koja je zapravo niz adresa metoda.

Tipičan način zaobilaženja metoda Tipičan način zaobilaženja metoda podklase podklase je upotreba ključne reči je upotreba ključne reči inhereted.inhereted.Apstraktni metod polimorfizma se koristi za označavanje metoda koji će biti definisan Apstraktni metod polimorfizma se koristi za označavanje metoda koji će biti definisan samo u potklasama aktuelne klasesamo u potklasama aktuelne klase.. Određuje se ključnom rečju Određuje se ključnom rečju abstract abstract i predstavlja i predstavlja direktivu koja u potpunosti definiše metod u roditeljskoj klasi a ne deklaracija koja se direktivu koja u potpunosti definiše metod u roditeljskoj klasi a ne deklaracija koja se prosleđuje. Poziv ove metode u roditeljskoj klasi, kao i pokušaj definicije metoda prosleđuje. Poziv ove metode u roditeljskoj klasi, kao i pokušaj definicije metoda izazvaće Delphijev izuzetak i pojavu greške. izazvaće Delphijev izuzetak i pojavu greške.

Program za administraciju i kontrolu umreženih računarskih sistema

V Obrada izuzetakaV Obrada izuzetakaIdeja izuzetaka (Ideja izuzetaka (eexcxceptionseptions) je da program učini robustnijim dodavanjem ) je da program učini robustnijim dodavanjem

mogućnosti obrade softverskih i hardverskih grešaka na jednostavan i uniforman način. mogućnosti obrade softverskih i hardverskih grešaka na jednostavan i uniforman način. Ukoliko ni jedan deo koda ne obrađuje izuzetak, obrađuje ga samo integrisano okruženje Ukoliko ni jedan deo koda ne obrađuje izuzetak, obrađuje ga samo integrisano okruženje Delphi prikazivanjem standardne poruke o grešci i pokušajem da nastavi izvršavanje Delphi prikazivanjem standardne poruke o grešci i pokušajem da nastavi izvršavanje programa obradom sledeće sistemske poruke.programa obradom sledeće sistemske poruke.

Ceo mehanizam se zasniva na sledećim ključnim rečima:Ceo mehanizam se zasniva na sledećim ključnim rečima:try - try - označava početak zaštićenog bloka.označava početak zaštićenog bloka.except - except - označava kraj zaštićenog bloka koda i uvodi iskaze za obradu.označava kraj zaštićenog bloka koda i uvodi iskaze za obradu.finally - finally - koristi se za označavanje bloka koda koji se mora uvek izvršiti, čak i kada se desi koristi se za označavanje bloka koda koji se mora uvek izvršiti, čak i kada se desi izuzetak.izuzetak.raise raise -- iskaz kojim se generiše izuzetak i upotrebljava se da bi se ponovo pozvali na iskaz kojim se generiše izuzetak i upotrebljava se da bi se ponovo pozvali na izuzetakizuzetak

PRIMER:PRIMER:

trytry trytry ...... exceptexcept on E:Exception do on E:Exception do ...... end;end; finallyfinally ......

end;end;

Program za administraciju i kontrolu umreženih računarskih sistema

VI PokazivačiVI Pokazivači

Operativna memorija je niz sekvencijalno označenih memorijskih lokacija koje Operativna memorija je niz sekvencijalno označenih memorijskih lokacija koje su numerisane celim brojevima 0,su numerisane celim brojevima 0, 1,1, 2,2, ...,..., mm-1 poznatim kao adresama (-1 poznatim kao adresama (adressadress) gde je ) gde je m m kapacitet memorije. Najmanja memorijska lokacija koja može samostalno da se kapacitet memorije. Najmanja memorijska lokacija koja može samostalno da se adresira obično je veličine 1 bajt (8 bitova). Podaci različitih tipova smeštaju se u jedan ili adresira obično je veličine 1 bajt (8 bitova). Podaci različitih tipova smeštaju se u jedan ili više uzastopnih bajtova što zavisi od tipa podataka (integer, real, char...).više uzastopnih bajtova što zavisi od tipa podataka (integer, real, char...).

Pokazivač (Pokazivač (pointerpointer) je promenljiva koja čuva memorijsku adresu. To je prost ) je promenljiva koja čuva memorijsku adresu. To je prost podatak u koji može da se smesti adresa neke lokacije u memoriji. Pokazivači obično podatak u koji može da se smesti adresa neke lokacije u memoriji. Pokazivači obično zauzimaju 2 ili 4 bajta što zavisi od mogućeg opsega adresa na datom računaru, a ne od zauzimaju 2 ili 4 bajta što zavisi od mogućeg opsega adresa na datom računaru, a ne od broja bajtova koliko zauzimaju pokazivani podaci. Ako podatak zauzima više bajtova, broja bajtova koliko zauzimaju pokazivani podaci. Ako podatak zauzima više bajtova, pod adresom podatka podrazumeva se bajt sa najmanjim rednim brojem.pod adresom podatka podrazumeva se bajt sa najmanjim rednim brojem.

10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 2624 27 28

23

00000101

525 95467.34518

0011010111000101

00010101A

MemorijskeAdrese

00001010

00000111

Program za administraciju i kontrolu umreženih računarskih sistema

varvar X, Y: Integer; X, Y: Integer; // X // X ii Y Y susu Integer Integer vrednostivrednosti P: P: ^Integer^Integer; ; // P // P je pokazivač naje pokazivač na Integer Integer tip podataka tip podataka beginbegin X := 17; X := 17; // // dodeljivanje vrednosti promenljivoj Xdodeljivanje vrednosti promenljivoj X P := @X;P := @X; //// dodeljivnje adrese promenljive X pokazivaču P dodeljivnje adrese promenljive X pokazivaču P Y := P^; Y := P^; // // dodeljivanje vrednosti promenljivoj Y iz adrese na koju pokazuje dodeljivanje vrednosti promenljivoj Y iz adrese na koju pokazuje end;end; pokazivač P tj. promenljive X pokazivač P tj. promenljive X

typetype PInteger = PInteger = ^Integer;^Integer;varvar R: Single;R: Single; I: Integer;I: Integer; P: Pointer;P: Pointer; PI: PInteger;PI: PInteger;beginbegin ...... P := @R;P := @R; PI := PInteger(P);PI := PInteger(P); I := PI^;I := PI^;end;end;

PRIMER 1:

PRIMER 2:

Program za administraciju i kontrolu umreženih računarskih sistema

Delphi 6 sadrži biblioteke VCL i CLX, koje su alternativa jedna drugoj kada je reč o Delphi 6 sadrži biblioteke VCL i CLX, koje su alternativa jedna drugoj kada je reč o vizuelnim komponentama. VCL (vizuelnim komponentama. VCL (Visual Component LibraryVisual Component Library) obuhvata klase komponenata, ) obuhvata klase komponenata, kontrola, nevizualnih komponenata, skupove podataka, Internet komponenata i druge. CLX kontrola, nevizualnih komponenata, skupove podataka, Internet komponenata i druge. CLX ((Component Library for X-PlatformsComponent Library for X-Platforms) je biblioteka komponenata za X-platformu (Linux ) je biblioteka komponenata za X-platformu (Linux distribucija).distribucija).

U vizuelnom programiranju, klase koje nisu direktno izvedene iz klase U vizuelnom programiranju, klase koje nisu direktno izvedene iz klase TComponentTComponent se ne mogu nalaziti na paleti se ne mogu nalaziti na paleti Component Palette Component Palette i ne mogu se direktno prebaciti na formular ali i ne mogu se direktno prebaciti na formular ali se njima može upravljati u prozoru se njima može upravljati u prozoru Object Inspector.Object Inspector.

Klase koje sadrže komponente mogu se podeliti u dve glavne grupe:Klase koje sadrže komponente mogu se podeliti u dve glavne grupe:

VIZUELNE KONTROLEVIZUELNE KONTROLE – Imaju poziciju i veličinu na ekranu i prikazuju se na – Imaju poziciju i veličinu na ekranu i prikazuju se na formularu u vreme izvršavanjaformularu u vreme izvršavanja

Vizuelne komponente koje se zasnivaju na prozoru OS (Vizuelne komponente koje se zasnivaju na prozoru OS (windowed controlswindowed controls) i obuhvataju ) i obuhvataju Windows API (Windows API (Aplication Programing InterfaceAplication Programing Interface), izvedene iz klase ), izvedene iz klase TWinControlTWinControl..

Vizuelne komponente koje se ne zasnivaju na prozoru OS-a (Vizuelne komponente koje se ne zasnivaju na prozoru OS-a (nonwindowed controlsnonwindowed controls) , a ) , a iscrtava ih formular na kome se nalaze, izvedene iz klase iscrtava ih formular na kome se nalaze, izvedene iz klase TGraphicalControl.TGraphicalControl.

NEVIZUELNE KONTROLENEVIZUELNE KONTROLE – Sve komponente koje nisu kontrole tj. sve klase koje – Sve komponente koje nisu kontrole tj. sve klase koje su izvedene iz klase su izvedene iz klase TComponentTComponent , ali ne iz klase , ali ne iz klase TControl. TControl. U vreme dizajniranja U vreme dizajniranja neke od ovih komponenata mogu biti vidljive (npr. okvir za dijalog), dok su druge neke od ovih komponenata mogu biti vidljive (npr. okvir za dijalog), dok su druge nevidljive (npr. komponenta za tabele baze podataka)nevidljive (npr. komponenta za tabele baze podataka)

Program za administraciju i kontrolu umreženih računarskih sistema

VI Vizuelno programiranjeVI Vizuelno programiranje