Programsko okruzenje Delphi 4 sa resenim zadacima




    1 Uvod, 1

      1.1  O programskom okruzenju Delphi, 2
      1.2  Uslovi za koriscenje Delphija, 4
      1.3  Aplikacije pod Windowsom, 5


    2 Rad u okruzenju Delphi, 15

      2.1  Pocetak rada, 16
      2.2  Komande Delphija, 19
      2.3  Trazenje prirucne pomoci, 20
      2.4  Podesavanje parametara Delphija, 23
      2.5  Izvrsavanje aplikacije, 26
      2.6  Snimanje i otvaranje projekta, 29
      2.7  Datoteke projekata u Delphiju, 32


    3 Izrada aplikacija u Delphiju, 37

      3.1  Dodavanje komponenata obrascu, 38
      3.2  Promena svojstava komponentama, 44
      3.3  Programiranje rukovalaca dogadjajima, 48
      3.4  Prijavljivanje gresaka, 54


    4 Programski jezik Object Pascal, 59

      4.1  Elementi jezika, 60
      4.1.1  Skup znakova, 60
      4.1.2  Leksicki simboli, 60
      4.1.3  Komentari, 60
      4.1.4  Direktive prevodioca, 61
      4.1.5  Identifikatori, 61
      4.1.6  Sluzbene reci i standardne direktive, 61
      4.2  Podaci, 62
      4.2.1  Tipovi podataka, 62
      4.2.2  Standardni skalarni tipovi, 62
      4.2.3  Konstante, 64
      4.2.4  Simbolicke konstante, 64
      4.2.5  Promenljive, 64
      4.2.6  Nabrojani tipovi, 65
      4.2.7  Numericki i prebrojivi tipovi, 66
      4.2.8  Podintervalni tipovi, 66
      4.2.9  Definisanje tipova, 66
      4.3  Operatori i izrazi, 67
      4.3.1  Aritmeticki operatori, 67
      4.3.2  Relacijski operatori, 67
      4.3.3  Logicki operatori, 67
      4.3.4  Operatori po bitovima, 67
      4.3.5  Redosled izvrsavanja operatora, 68
      4.3.6  Bibliotecki potprogrami, 68
      4.4  Naredbe i upravljacke strukture, 68
      4.4.1  Naredba za dodelu vrednosti, 69
      4.4.2  Sekvenca, 70
      4.4.3  Selekcije, 70
      4.4.3.1  Osnovna selekcija, 70
      4.4.3.2  Selekcija pomocu skretnice, 71
      4.4.4  Ciklusi, 71
      4.4.4.1  Ciklus sa izlazom na vrhu, 72
      4.4.4.2  Ciklus sa izlazom na dnu, 72
      4.4.4.3  Brojacki ciklus, 72
      4.4.5  Skokovi, 73
      4.4.5.1  Iskakanje iz ciklusa, 73
      4.4.5.2  Skok na kraj ciklusa, 73
      4.4.5.3  Skok sa proizvoljnim odredistem, 73
      4.5  Struktura programa, 74
      4.5.1  Glavni program, 74
      4.5.2  Potprogrami, 75
      4.5.2.1  Definisanje potprograma, 76
      4.5.2.2  Pozivanje potprograma, 77
      4.5.2.3  Deklarisanje potprograma, 78
      4.5.2.4  Argumenti sa podrazumevanim vrednostima, 79
      4.5.2.5  Preklapanje imena potprograma, 79
      4.5.3  Programski moduli, 80
      4.5.4  Doseg identifikatora, 81
      4.6  Pokazivaci, 81
      4.6.1  Definisanje i upotreba pokazivaca, 81
      4.6.2  Pokazivaci na potprograme, 82
      4.6.3  Dinamicka dodela memorije, 83
      4.7  Strukturirani tipovi podataka, 83
      4.7.1  Nizovi, 83
      4.7.1.1  Definisanje nizova, 83
      4.7.1.2  Koriscenje nizova, 84
      4.7.1.3  Otvoreni nizovi, 84
      4.7.2  Znakovni nizovi, 85
      4.7.3  Znakovni nizovi zavrseni nulom, 87
      4.7.4  Zapisi, 87
      4.7.5  Skupovi, 89
      4.7.6  Datoteke, 90
      4.7.6.1  Promenljive tipa datoteka, 90
      4.7.6.2  Koriscenje datoteka, 90
      4.7.6.3  Tekstualne datoteke, 90
      4.7.6.4  Datoteke bez tipa, 92
      4.8  Zadaci, 92
      4.8.1  Obrada trouglova, 92
      4.8.2  Statisticki parametri nizova brojeva, 94


    5 Object Pascal kao objektno orijentisani jezik, 97

      5.1  Klase, 98
      5.1.1  Definisanje klasa, 98
      5.1.2  Definisanje primeraka klasa, 100
      5.1.3  Koriscenje clanova klasa, 100
      5.1.4  Definisanje metoda, 101
      5.1.5  Konstruktori i destruktori, 102
      5.1.6  Zajednicki clanovi klasa, 103
      5.1.7  Pokazivaci na metode, 104
      5.1.8  Upucivaci na klase, 105
      5.1.9  Svojstva, 105
      5.2  Izvedene klase, 106
      5.2.1  Nasledjivanje, 106
      5.2.2  Kompatibilnost tipova, 107
      5.2.3  Virtuelne i dinamicke metode, 108
      5.2.4  Apstraktne metode, 109
      5.2.5  Osnovna klasa svih klasa: TObject, 109
      5.3  Izuzeci, 110
      5.3.1  Predstavljanje izuzetaka, 110
      5.3.2  Prijavljivanje izuzetaka, 110
      5.3.3  Rukovanje izuzecima, 111
      5.3.4  Zastita koriscenja resursa, 112
      5.4  Zadaci, 113
      5.4.1  Obrada polinoma, 113
      5.4.2  Obrada kompleksnih brojeva, 117


    6 Biblioteka komponenata, 123

      6.1  Osnovni pojmovi, 124
      6.2  Svojstva, 124
      6.2.1  Nacini koriscenja svojstava, 124
      6.2.2  Ime komponente, 127
      6.2.3  Vlasnistvo komponenata, 127
      6.2.4  Sadrzavanje komponenata, 127
      6.2.5  Vidljivost i upotrebljivost komponenata, 128
      6.2.6  Polozaj i velicina komponenata, 129
      6.2.7  Natpis komponente, 131
      6.2.8  Izgled komponente, 131
      6.2.9  Izgled pokazivaca misa, 132
      6.2.10, Boja komponente, 132
      6.2.11, Vrsta slova, 133
      6.2.12, Redosled pomeranja zize na komponente, 134
      6.2.13, Prirucna uputstva, 135
      6.3  Metode, 135
      6.3.1  Stvaranje i unistavanje komponenata, 135
      6.3.2  Upravljanje zizom, 136
      6.3.3  Vidljivost komponenata, 136
      6.3.4  Polozaj i velicina komponenata, 137
      6.3.5  Vlasnistvo i sadrzavanje komponenata, 137
      6.4  Dogadjaji, 138
      6.4.1  Rukovaoci dogadjajima, 138
      6.4.2  Dogadjaji pri pomeranju zize, 139
      6.4.3  Dogadjaji sa misem, 139
      6.4.4  Dogadjaji sa tastaturom, 140
      6.4.5  Dogadjaj pri promeni sadrzaja komponente, 141
      6.5  Klase opste namene, 142
      6.5.1  Klasa za liste znakovnih nizova, 142
      6.5.2  Klase za graficke objekte, 143
      6.6  Zadaci, 146
      6.6.1  Rastojanje izmedju dve tacke u prostoru, 146
      6.6.2  Pascalov trougao, 148


    7 Jednostavne komponente, 153

      7.1  Prikazivanje teksta, 154
      7.1.1  Oznaka (Label), 154
      7.1.2  Staticki tekst (StaticText), 155
      7.2  Dugmad, 155
      7.2.1  Dugme (Button), 155
      7.2.2  Dugme sa slikom (BitBtn), 157
      7.2.3  Dugme precica (SpeedButton), 158
      7.2.4  Okvir za potvrdu (CheckBox), 159
      7.2.5  Radio-dugme (RadioButton), 160
      7.2.6  Grupa radio-dugmadi (RadioGroup), 160
      7.3  Izbor stavki iz spiska, 162
      7.3.1  Okvir sa listom (ListBox), 162
      7.3.2  Okvir sa potvrdjenom listom (CheckListBox), 164
      7.4  Srazmerno prikazivanje velicina, 164
      7.4.1  Klizac (ScrollBar), 164
      7.4.2  Regulator (TrackBar), 166
      7.4.3  Merac (Gauge), 168
      7.4.4  Pokazivac napredovanja (ProgressBar), 169
      7.5  Kontejnerske komponente, 169
      7.5.1  Okvir za grupu (GroupBox), 170
      7.5.2  Ploca (Panel), 170
      7.5.3  Okvir sa klizacima (ScrollBox), 171
      7.6  Trake za oznacavanje, 172
      7.6.1  Zaglavlje (Header), 173
      7.6.2  Zaglavlje sa dugmadima (HeaderControl), 173
      7.6.3  Statusna traka (StatusBar), 175
      7.7  Razne komponente, 176
      7.7.1  Ram (Bevel), 176
      7.7.2  Slika (Image), 177
      7.7.3  Casovnik (Timer), 178
      7.7.4  Brojac (UpDown), 178
      7.7.5  Razdelnik (Splitter), 181
      7.8  Zadaci, 182
      7.8.1  Kosi hitac, 182


    8 Okviri za tekst, 189

      8.1  Unosenje teksta preko tastature, 190
      8.2  Svojstva, 191
      8.3  Metode, 192
      8.4  Okvir za tekst (Edit), 192
      8.5  Okvir za tekst sa maskom (MaskEdit), 193
      8.6  Okvir za tekst sa brojacem (SpinEdit), 196
      8.7  Viseredni okvir za tekst (Memo), 196
      8.8  Kombinovani okvir za tekst sa listom (ComboBox), 197
      8.9  Zadaci, 199
      8.9.1  Urednik teksta, 199


    9 Meniji, 205

      9.1  Vrste menija, 206
      9.2  Glavni meni (MainMenu), 206
      9.3  Pomocni meni (PopupMenu), 207
      9.4  Sastavljanje menija, 208
      9.5  Stavka menija, 211
      9.5  Stavka menija, 212
      9.6  Palete komandi, 214
      9.7  Zadaci, 214
      9.7.1  Sortiranje brojeva, 214


    10 Obrasci, 225

      10.1  Rad sa vise obrazaca, 226
      10.2  Svojstva obrasca, 229
      10.3  Metode obrasca, 232
      10.4  Dogadjaji obrasca, 234
      10.5  Standardni prozori za dijalog, 235
      10.5.1  Bibliotecke funkcije za prozore za dijalog, 235
      10.5.2  Komponente za prozore za dijalog, 238
      10.5.2.1  Prozori za dijalog otvori i snimi (OpenDialog, SaveDialog, OpenPictureDialog, SavePictureDialog), , 239
      10.5.2.2  Prozor za dijalog vrste slova (FontDialog), 240
      10.5.2.3  Prozor za dijalog boje (ColorDialog), 241
      10.5.2.4  Prozor za dijalog stampaj (PrintDialog), 242
      10.5.2.5  Prozor za dijalog podesi stampac (PrinterSetupDialog), , 243
      10.5.2.6  Prozori za dijalog nadji i zameni (FindDialog, ReplaceDialog), , 243
      10.6  Aplikacija kao komponenta, 244
      10.6.1  Svojstva aplikacije, 244
      10.6.2  Metode aplikacije, 246
      10.6.3  Dogadjaji aplikacije, 247
      10.7  Zadaci, 248
      10.7.1  Prikazivanje slika, 248


    11 Naprednije tehnike, 261

      11.1  Crtanje, 262
      11.1.1  Platno za crtanje (Canvas), 262
      11.1.2  Svojstva platna, 262
      11.1.3  Metode platna, 264
      11.1.4  Metode drugih komponenata i crtanje, 265
      11.1.5  Primer, 265
      11.2  Stampanje, 267
      11.2.1  Svojstva klase TPrint, 267
      11.2.2  Metode klase TPrint, 268
      11.2.3  Primer, 268
      11.2.4  Stampanje tekstova, 270
      11.3  Koriscenje Clipboarda, 271
      11.3.1  Svojstva klase TClipboard, 272
      11.3.2  Metode klase TClipboard, 272
      11.3.3  Primer, 273
      11.4  Odvlacenje (Drag & Drop) i odvajanje (Drag & Dock), 275
      11.4.1  Svojstva komponenata, 276
      11.4.2  Metode komponenata, 276
      11.4.3  Komponente i dogadjaji, 277
      11.4.4  Primer, 278
      11.5  Izbor datoteke, 281
      11.5.1  Okvir sa listom datoteka (FileListBox), 282
      11.5.2  Okvir sa padajucom listom filtara (FilterComboBox), 282
      11.5.3  Okvir sa listom kataloga (DirectoryListBox), 283
      11.5.4  Okvir sa padajucom listom jedinica diskova (DriveComboBox), 284
      11.5.5  Primer, 284
      11.6  Mreze podataka (DrawGrid i StringGrid), 286
      11.6.1  Svojstva mreza, 287
      11.6.2  Metode mreza, 288
      11.6.3  Dogadjaji mreza, 288
      11.6.4  Primer, 289
      11.7  Grupisanje komponenata u stranice, 291
      11.7.1  Sveska (Notebook), 292
      11.7.2  Skup jezicaka (TabSet), 293
      11.7.3  Sveska sa jeziccima (TabbedNotebook), 294
      11.7.4  Kontrolor stranica (PageControl), 295
      11.7.5  Kontrolor jezicaka (TabControl), 297
      11.7.6  Primer, 298


    12 Skladiste objekata, 303

      12.1  Upotreba skladista, 304
      12.2  Sabloni za projekte, 306
      12.3  Sabloni za obrasce, 309
      12.4  Dodavanje novih sablona, 311
      12.5  Carobnjaci za projekte, 313
      12.6  Carobnjaci za obrasce, 316


    Literatura, 319
    Indeks, 321