- mellékleten a Turbo Delphi Explorer telepíthető változata és interaktív feladatok Szerzők: Tóth Bertalan - Tamás Péter - Kuzmina Jekatyerina Kiadó: ComputerBooks Kiadó, 2007 oldalszám: 296 ISBN: 978 963 618 351 6
A könyv előszava
Mi is a programozás valójában? A hagyományos, algoritmikus programozás során egy tevékenységsorozatot írunk le, amely véges lépésben biztosítja a kívánt cél elérését. A mindennapi életben – otthon és munkahelyen egyaránt – gyakran találjuk magunkat hasonló feladatok előtt, amikor valamire tanítjuk a gyermekünket vagy a kollégánkat. Amennyiben valaki a számítógépnek korrekt módon meg tudja mondani, mit is vár tőle, az az életben is hasonló pontossággal képes leírni a teendőket. Valamelyest módosul a kép, amikor az újabb objektum- vagy komponens-orientált módszereket alkalmazzuk. Ebben az esetben a feladat, hogy meglévő elemekből építkezve, eljussunk egy kívánt szerkezet kialakításáig.
Melyik nyelvet, rendszert válasszuk? A választás igen nehéz, hiszen manapság igen gazdag a programozási nyelvek tárháza. Tovább nehezíti a döntésünket, hogy a legtöbb nyelvhez találunk az Interneten ingyenes fordítót, illetve integrált fejlesztői környezetet (IDE). Könyvünkkel akkor segíthetünk az Olvasónak, ha a Borland Software Corporation tanulásra és fejlesztésre egyaránt szabadon használható Turbo™ Delphi® Explorer rendszer mellett teszi le a voksát, amely a CD-mellékleten is megtalálható. A Turbo Delphi napjaink egyik leghatékonyabb alkalmazásfejlesztő eszköze, amely Object Pascal alapú forrásnyelvi fordítóprogrammal, komponensalapú felépítéssel (VCL), és testre szabható adatbázis-hozzáférési lehetőséggel rendelkezik
A Delphi rendszerek olyan gyors alkalmazásfejlesztő környezetek (RAD Rapid Application Development), amelyek hazánkban rendkívüli népszerűségnek örvendenek. A Delphi legutóbbi változatai egyaránt támogatják a Microsoft Win32, a Microsoft .NET alkalmazások, valamint a PHP-scriptek készítésére szolgáló grafikus fejlesztői környezetet és a teljesen objektum-orientált programnyelvi fordítót.
Miben segít ez a könyv? Könyvünk készítése során a Turbo™ Delphi® Professional verziót használtuk, azonban a példaprogramok többsége a régebbi és az újabb (Pascal-alapú) változatok (Borland Delphi 7, Delphi® 2006, Turbo Delphi for .NET, Delphi® 2007 for Win32®) alatt is felhasználható. A Turbo Delphi fejlesztői környezetében való programkészítés megkezdése előtt három területtel kell – alapszinten – ismeretséget kötnünk. A legfontosabb talán a (Object) Pascal nyelv alapjainak elsajátítása. Ebben több, a ComputerBooks Kiadó gondozásában megjelent szakkönyv is segítségünkre lehet (lásd irodalomjegyzék). Jelen műben csak az Object Pascal nyelv tematikus áttekintésére vállalkoztunk, a CD-mellékleten található e-függelék első részében.
A következő lépés az Integrált Fejlesztői Környezet (Integrated Development Environment - IDE) használatának, alapvető lehetőségeinek megismerése, amelyhez a könyvünk 2. fejezete tartalmaz hasznos információkat.
Végül, de nem utolsó sorban át kell tekintenünk azokat a komponenseket, amelyek hatékonnyá és kényelmessé tehetjük a programfejlesztés folyamatát. A komponensalapú programkészítés építőelemeinek tematikus összefoglalása képezi könyvünk fő vonulatát.
A kezdő- és középhaladó programozóknak készült könyvünk egyesíti a tankönyvek és példatárak előnyeit. A példatár jelleget a CD-mellékleten fellelhető programozási feladatok kiírása és megoldása adja. Ugyancsak megtalálható itt egy tesztprogram, amely segíti az Olvasó Turbo Delphi ismereteinek felmérését.
A CD-melléklet tartalma
A CD-lemez automatikusan induló kezelőfelülete, amely segíti az eligazodást az egyes könyvtárak tartalmával kapcsolatosan (Fontos.exe).
Adobe Reader Az Adobe® Reader® telepítő-állománya Windows 2000 és Windows XP operációs rendszerekalá. Más rendszerek alatt működő változatok ingyenesen letölthetők a www.adobe.comwww.adobereader.com oldalról. vagy a
Feladatok A programozási gyakorlat megszerzését segítő, önálló feldolgozásra szánt több száz feladat, valamint a megoldások Turbo Delphi forrásállományai. A könyvhöz tartozó forrásprogramokat – használat előtt – a merevlemezre kell másolni a Telepit.exe alkalmazás segítségével.
Info A CD-melléklet tartalmával kapcsolatos további információk
Konyv Az elektronikus függelék pdf-formátumú állományai, melyek olvasásához szükséges, hogy a Adobe® Reader® program telepítve legyen a számítógépünkön (Adobe Reader könyvtár vagy www.adobereader.com).
Teszt A Turbo™ Delphi® rendszer önálló tanulását, valamint a tanultak visszakérdezését, ellenőrzését segítő, Windows alatt működő elektronikus teszt (Teszt.exe).
Turbo Delphi Explorer A Turbo™ Delphi® Explorer fejlesztőeszköz Microsoft Windows 2000, Windows XP, illetve újabb Windows operációs rendszerek alatt futó változata. A telepítéshez és az aktiváláshoz szükséges információkat könyvünk 1.fejezete tartalmazza. További információk a www.turboexplorer.com/delphi weboldalon találhatók.
A könyv tartalomjegyzéke
Tartalomjegyzék Előszó Bevezetés Ismerkedés a Turbo Delphi fejlesztői környezetével Szöveges felhasználói felületű alkalmazás készítése Grafikus felhasználói felületű alkalmazás készítése
A Turbo Delphi, mint a Windows-programozás eszköze Eseményvezérelt programépítés Az alkalmazások szerkezete A projekt A TApplication osztály A TApplicationEvents osztály Az üzenetek szerkezete Az alkalmazások környezete A TScreen osztály lehetőségei A TMouse osztály használata Az alkalmazások ablaka Az ablakesemények kezelése Az ablak létrehozása, zárása és lebontása Az ablak megjelenése és aktiválása Billentyű- és egérkezelés az ablakban További ablakesemények Ablakok tulajdonságai Az ablakok elhelyezkedése Az ablakok megjelenése Az ablakok „működése” Ablakkezelő metódusok Metódusok az ablakok létrehozására és lebontására Ablak-megjelenítő metódusok Egyéb ablakkezelő metódusok A keret, mint a vezérlők tárolója A vezérlőkről röviden - alapvezérlők Az alapvezérlők közös tulajdonságai, eseményei és metódusai A vezérlők közös tulajdonságai A vezérlők eseményei A vezérlők működtetése programból Menük használata Az ablakmenü és a felbukkanó menü Menük létrehozása a menütervezővel A menü és a Turbo Delphi program Menük kezelése a programból Vezérlőgombok A Button (nyomógomb) vezérlő A CheckBox (jelölőnégyzet) vezérlő A RadioButton (választógomb) vezérlő A ScrollBar vezérlő Szövegmegjelenítők A Label (címke) vezérlő Az Edit (szövegszerkesztő szövegmező) vezérlő A Memo (többsoros szövegszerkesztő) Listás vezérlők A ListBox (lista) vezérlő A ComboBox (kombinált lista) vezérlő Csoportosító vezérlők A GroupBox (csoportablak) vezérlő Panel (tábla) vezérlő Az időzítő Speciális vezérlők Grafikus vezérlőgombok, billentyűzetgyorsítók Görgetősáv jellegű különleges vezérlők Speciális szövegmegjelenítők és -szerkesztők Lista típusú különleges vezérlők Speciális vezérlőtároló komponensek Információk táblázatos megjelenítése Speciális naptárvezérlők Formok és vezérlők programból történő létrehozása Formok dinamikus kezelése Vezérlők futás közben történő létrehozása A dinamikusan létrehozott elemek eseményei Dinamikusan létrehozott elemek tömbje Multimédiás alkalmazások készítése MessageBeep(), PlaySound() és MCI-függvények Hangnélküli AVI-fájlok lejátszása: TAnimate Animációk készítése hagyományos módszerrel Médialejátszó: TMediaPlayer Vidd és dobd, vagy csatlakoztasd! Az objektumok „megfogása” A „vidd és dobd” művelet A „vidd és csatlakoztasd” művelet A vágólap használata Többszálú alkalmazások készítése A programszálak létrehozása és megszüntetése A programszál osztályának elkészítése Programszál-objektumok létrehozása Programszál-objektumok megszüntetése A programszál indítása, felfüggesztése és leállítása Programszálak kezelése A VCL szinkronizálása Threadvar változók A szálak adatkezelése Szálak szinkronizálása
Többablakos alkalmazások kialakítása Párbeszédablakok Modális és nem modális párbeszédablakok Egyszerű szerkezetű párbeszédablakok használata Az üzenetablakok Egyszerű adatbeviteli párbeszédablakok Általános párbeszédablakok használata Fájlkezelő általános párbeszédablakok Betűtípus-beállító általános párbeszédablak Színbeállító általános párbeszédablak Nyomtatással kapcsolatos általános párbeszédablakok Szövegkezelő általános párbeszédablakok A párbeszédablakok speciális vezérlői A regiszterfül (TabControl) vezérlő A regiszter (TPageControl) vezérlő Előre elkészített párbeszédablak-minták Az objektumtár (Object Repository) Az ablakminták használata Az objektumraktár használata Speciális felépítésű alkalmazások SDI alkalmazások MDI alkalmazások MDI form és MDI gyermek készítése Az MDI gyermekablakok kezelése és elrendezése Menük MDI ablakban Az ablakok bezárása
Grafikus megjelenítés a Turbo Delphi programokban Alapvető grafikus eszközök Színek Rajzolási módok Alapeszközök A toll (TPen) Az ecset (TBrush) A betűtípus (TFont) A képek (TPicture) Grafikus vezérlők használata Geometriai alakzatok megjelenítése Képek megjelenítése Képlisták Grafikonok megjelenítése A Canvas tulajdonság használata A Canvas objektum alaptulajdonságai Objektumok kirajzolásának határai (ClipRect) Az eszközkapcsolat-leíró Koordináta-rendszerek Rajzolás a Canvas objektum felhasználásával Képpontgrafika Rajzolás tollakkal Festés a rajzvásznon Írás a rajzvászonra Bitképek megjelenítése Rajzolás és újrafestés Windows alkalmazásokban Nyomtatás
Újrafelhasználható programelemek készítése Dinamikusan szerkeszthető könyvtárak (DLL) DLL készítése A DLL felhasználása Import unit készítése Statikus és dinamikus importálás A DLL használatának további lehetőségei A DLL működésének felügyelete A DLL és a memória Form tárolása DLL-ben Erőforrások tárolása DLL-ben Delphi komponensek készítése A package programmodul A komponenskészítés alapismeretei A komponensek származtatása A komponensek építőelemei A komponensek tesztelése Komponensek létrehozásának lépései Komponenskészítés lépésről-lépésre
Adatkezelés a Turbo Delphi-ben Fájlkezelés Állománytípusok Szöveges állományok Típusos fájlok Típus nélküli fájlok A fájlkezelés lépései Nulladik lépés: előkészületek Első lépés: fájlnyitás Második lépés: fájlműveletek Harmadik lépés: a fájl lezárása Hibakezelés Lemezek és könyvtárak használata Lemezadatok lekérdezése Könyvtárak használata Állományok adatai Adatfolyamok (streams) kezelése Lemazállományok adatfolyama (FileStream) Sztringek adatfolyama (StringStream) Memória-adatfolyam (MemoryStream) Lokális adatbázisok kezelése Turbo Delphi alkalmazásokból A BDE (Borland Database Engine) A relációs adatbázisokról röviden Az álnevek (alias) létrehozása a BDE Administrator segítségével Az eszközpaletta BDE, Data Controls és Data Access lapján található vezérlőelemek használata Adatkészletező (DataSet) vezérlőelemek Bővebben a DataSource vezérlőelemről A BDE palettalapon található további vezérlőelemek Az adatmegjelenítő komponensek (a Data Controls palettalapon) Beszámolók készítése az adatbázis adatai alapján (Rave palettalap) Active Data Objects - ADO (dbGo palettalap) A dbGO vezérlőelemek Az ADOConnection komponens A dbExpress palettalap A Database Desktop alkalmazás
Web-alkalmazások fejlesztése Webböngésző alkalmazás létrehozása TCP/IP-illesztőkapuk (sockets) Web Broker technológia: CGI és ISAPI (NSAPI) A webkiszolgáló-oldali alkalmazások típusai Kommunikációs sorrend, űrlapok A TWebActionItems, TWebResponse és TWebRequest osztályok használata A tartalom-összeállítók (TPageProducer, TDataSetPageProducer stb.) A TPageProducer és a TDataSetPageProducer komponensek A TDataSetTableProducer, TQueryTableProducer és a TSQLQueryTableProducer építőelemek WebServices palettalap IntraWeb
Elektronikus függelék a CD-mellékleten
Az Object Pascal nyelv Az Object Pascal nyelv elemei A nyelv jelkészlete Foglalt szavak A program utasításai és sorai Azonosítók Számok Szövegkonstansok Címkék Operandusok Operátorok Kifejezések A programozó megjegyzései a programban Object Pascal programok felépítése Adattípusok és deklarációk Egyszerű adattípusok Sorszámozott típusok Valós típusok A string típus Strukturált típusok Struktúrált típusok tömörített tárolása Típusok mérete Tömbtípusok Rekordtípusok Halmaz Állománytípusok Osztály és osztály-referencia Az interface, a többszörös öröklés eszköze Mutatók Az eljárástípus A variáns típus Típusdefiníció A type használata bonyolultabb típusok esetén Konstansok (const) Típusos konstansok Azonos és kompatibilis típusok Típusok azonossága Típusok kompatibilitása Értékadási kompatibilitás Típuskonverzió Object Pascal kifejezések Egy- és kétoperandusú műveletek Elsőbbségi szabályok Műveletek csoportosítása Aritmetikai műveletek Logikai műveletek Bitenként végzett logikai műveletek Összehasonlító (relációs) műveletek Karaktersorozatok összekapcsolása Halmazműveletek Halmazok egyesítése, metszete és különbsége Halmazkezelő eljárások Halmazokra vonatkozó vizsgálatok Műveletek mutatókkal Osztályok és interface-ek operátorai Konzol-alkalmazások alapvető I/O műveletei Szöveges megjelenítés - a write() és a writeln() eljárások Szöveg kiírása Egész típusú adatok megjelenítése Valós értékek kiírása Logikai értékek kiírása Olvasás billentyűzetről - a read() és a readln() eljárások Számok beolvasása Karakteres adatok bevitele Az Object Pascal nyelv utasításai Egyszerű utasítások Az üres utasítás Az értékadó utasítás A goto utasítás Eljáráshívás Strukturált utasítások Összetett utasítás (blokk) Feltételes utasítások A case utasítás Ciklusutasítások A with utasítás A kivételkezeléssel kapcsolatos utasítások Alprogramok használata Az alprogramok szerkezete és helye az Object Pascal programban Az alprogramok törzse, kilépés az alprogramból Függvények és eljárások Eljárások Függvények A függvények és az eljárások összehasonlítása Rekurzív alprogramok Változók az alprogramokban Lokális deklarációk A változónevek érvényességi tartománya A változók élettartama Alprogramok paraméterei Értékparaméterek - az érték szerinti paraméterátadás Változó-paraméterek, a cím szerinti paraméterátadás Kimenő (out) paraméterek Konstans (const) paraméterek A paraméterek típusai Paraméterek alapértéke Alprogramok deklarációja Előzetes (forward) deklaráció Hívási konvenciók Alprogramok importálása Alprogramok több változatban (overloading) Modulok az Object Pascalban Az Object Pascal modulok felépítése A modulok fejléce - hivatkozás a modulokra Az interface rész Az implementation rész Az inicializációs és a lezáró rész Az Object Pascal nyelv speciális lehetőségei Dinamikus memória-használat A mutató típus és a dinamikus változók További memória-kezelő függvények és eljárások Műveletek mutatókkal Dinamikus tömbök használata Szövegek tárolása és feldolgozása A statikus helyfoglalású rövid sztringek A dinamikus helyfoglalású hosszú sztringek A dinamikus helyfoglalású széles karaktersorozatok Nullavégű sztringek használata Sztringkonstansok erőforrásban Az idő és a dátum kezelése A dátum/idő lekérdezése, kódolása és felhasználása A dátum/idő szöveggé alakítása, illetve feltöltése szövegből Kapcsolat más dátum- és időformátumokkal A variáns típus használata A Variant típus kezelését segítő alprogramok a System modulban Variant tömbök kezelése Nyitott paraméterek az Object Pascal nyelvben A beépített assembler használata Matematikai lehetőségek a Delphi-ben Egyszerű számítások Matematikai függvények Adattömbök kezelése és statisztikai számítások Véletlen számok használata Objektumok az Object Pascal-ban Az objektumosztályok (class) felépítése Adatmezők Metódusok Tulajdonságok Az adatrejtés elve Osztály-hierarchia kialakítása A TObject osztály a közös ős A record és a class típus Osztályok származtatása Statikus metódusok - objektumok zártsága Sokalakúság az osztály-hierarchiában Absztrakt metódusok használata Az osztályok használatának további lehetőségei Osztályoperátorok A tulajdonságokról bővebben Üzenetkezelés Események, eseménykezelők Objektum-interfészek (interfaces) Az objektum-orientált adattárolási lehetőségek áttekintése Sorok és vermek Adatok listás tárolása A TCollection objektumgyűjtemény Kivételek kezelése A kivételkezelés használata Kivételek deklarációja Kivételek kiváltása - a raise utasítás A try...except utasítás Kivételek ismételt előidézése Beágyazott kivételek A try...finally utasítás Előre definiált kivételek A kivételkezelést támogató eljárások
Alkalmazások közötti kapcsolatok Dokumentumok csatolása és beágyazása Az OLEContainer komponens által kezelt dokumentum Az OLEContainer komponens működése Az OLEContainer és az alkalmazás menüi Az OLE-automatizmus Az Excel Basic és az OLE-automatizmus OLE-automatizmus és a Word Basic Az OLE-kiszolgálók elérése A Word kezelése TOleServer komponensekkel Az Excel, mint OLE-kiszolgáló
Súgórendszer készítése Súgófájl (.hlp) írása Tematikus állomány létrehozása A projektállomány létrehozása, és a súgófájl fordítása A tartalomfájl létrehozása Tematikus állományok készítése bonyolultabb súgókhoz Súgófájlok hívása alkalmazásokból A súgóállomány nevének megadása A „Mi ez?” kontextmenük és gombok A súgó párbeszédablakának megjelenítése Buboréksúgók, állapotsorok, névjegyek A HTML-súgó használata A Microsoft Help 2.x formátum
Local SQL összefoglaló A DML (Data Manipulation Language) utasítások A SELECT utasítás és a függvények használata Az INSERT, az UPDATE és a DELETE utasítások használata A DDL (Data Definition Language) utasításai CREATE TABLE ALTER TABLE és DROP TABLE CREATE INDEX és DROP INDEX
Irodalomjegyzék
Tárgymutató
|