Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaMariska Székelyné Megváltozta több, mint 10 éve
1
Delphi A VB felhasználó barátságát kombinálja a C++ tág lehetőségeivel és sebességével. A VB felhasználó barátságát kombinálja a C++ tág lehetőségeivel és sebességével. RAD - Rapid Application Development; „Vizuális nyelv”; 4GL nyelv: rengeteg kódírástól kímél meg (pl. felhasználói felület készítése) RAD - Rapid Application Development; „Vizuális nyelv”; 4GL nyelv: rengeteg kódírástól kímél meg (pl. felhasználói felület készítése)
2
Delphi Eseményvezérelt programozás (Event Drive Programming): a programkód részleteit események aktivizálják (pl. egér, billentyűzet műveletek). Eseményvezérelt programozás (Event Drive Programming): a programkód részleteit események aktivizálják (pl. egér, billentyűzet műveletek). A Delphi rendszer nyelve az Object Pascal. A Delphi rendszer nyelve az Object Pascal.
3
Object Pascal Főbb különbségek a Turbo Pascalhoz képest: Megjegyzés: {…}, (*…*), új: // a sor hátralevő része Megjegyzés: {…}, (*…*), új: // a sor hátralevő része Globális változóknak kezdeti értéket adhatunk, pl: var sum: integer = 0; Globális változóknak kezdeti értéket adhatunk, pl: var sum: integer = 0; Bővített típusválaszték. Integer: 32 bites, több boolean, char, string típus (alapértelmezés szerint 2GB méretű). Bővített típusválaszték. Integer: 32 bites, több boolean, char, string típus (alapértelmezés szerint 2GB méretű).
4
Object Pascal Függvény: visszatérési érték megadása: név := érték, vagy result := érték; Függvény: visszatérési érték megadása: név := érték, vagy result := érték; Függvény, eljárás: lehetséges konstans paraméter. A fordító nem készít lokális másolatot, mint az érték szerintinél, viszont nem lehet megváltoztatni az értékét. Nagy méretű paramétereknél helytakarékosság. Deklarálás pl.: const p: string Függvény, eljárás: lehetséges konstans paraméter. A fordító nem készít lokális másolatot, mint az érték szerintinél, viszont nem lehet megváltoztatni az értékét. Nagy méretű paramétereknél helytakarékosság. Deklarálás pl.: const p: string Rengeteg új függvény: stringkezelő (pl. StrToInt, IntToStr …), matematikai (Power, ArcSin …), tömb (MinValue, MaxValue, Sum, Mean…), üzleti, pénzügyi számítások. Rengeteg új függvény: stringkezelő (pl. StrToInt, IntToStr …), matematikai (Power, ArcSin …), tömb (MinValue, MaxValue, Sum, Mean…), üzleti, pénzügyi számítások.
5
Object Pascal Objektumok Objektumok Class típus: adatok, metódusok, tulajdonságok. Class típus: adatok, metódusok, tulajdonságok. Tulajdonság: elérhető úgy is közvetlenül, hogy nem sérül az adatrejtés elve, pl: Label1.Caption := ’Hello!’; Tulajdonság: elérhető úgy is közvetlenül, hogy nem sérül az adatrejtés elve, pl: Label1.Caption := ’Hello!’; TObject osztály a közös ős TObject osztály a közös ős
6
Object Pascal - komponensek olyan objektumok, melyek jellemzői mind tervezési, mind futási időben elérhetők. olyan objektumok, melyek jellemzői mind tervezési, mind futási időben elérhetők. A vizuális programfejlesztés alapját képezik. A vizuális programfejlesztés alapját képezik. Rengeteg komponens áll rendelkezésünkre (VCL: Visual Componenet Library: pl. nyomógombok, címke, gördítősáv, menü, stb.), Rengeteg komponens áll rendelkezésünkre (VCL: Visual Componenet Library: pl. nyomógombok, címke, gördítősáv, menü, stb.), valamint készíthetünk is azokat, ill. letölthetünk az Internetről. valamint készíthetünk is azokat, ill. letölthetünk az Internetről.
7
A komponensek rendelkeznek tulajdonságokkal, (properties) speciális adatmezők, melyek meghatározzák, hogy milyen legyen egy komponens (pl. méret, elhelyezkedés, szín, stb.) tulajdonságokkal, (properties) speciális adatmezők, melyek meghatározzák, hogy milyen legyen egy komponens (pl. méret, elhelyezkedés, szín, stb.) futás közben hívható metódusokkal, mit csináljon egy komponens (pl. egy ablak esetén: create, close, show, hide). futás közben hívható metódusokkal, mit csináljon egy komponens (pl. egy ablak esetén: create, close, show, hide). eseményekkel (spec. tulajdonság, metódus mutató) amelyekre reagál az adott komponens. eseményekkel (spec. tulajdonság, metódus mutató) amelyekre reagál az adott komponens.
8
Object Pascal Osztály operátorok: is (logikai eredmény), as (típus konverzió), (ld. később, Sender paraméter). Osztály operátorok: is (logikai eredmény), as (típus konverzió), (ld. később, Sender paraméter). Tároló osztályok pl.: TList, TStrings (add, insert, clear, …); TStack, TQueue (push, pop, …). Tároló osztályok pl.: TList, TStrings (add, insert, clear, …); TStack, TQueue (push, pop, …).
9
Delphi, mint a Windows programozás eszköze Form: a formok lesznek a felhasználó által látható ablakok (TForm osztály, TForm1 származtatott osztály). Form: a formok lesznek a felhasználó által látható ablakok (TForm osztály, TForm1 származtatott osztály). Az ablakba komponensek kerülnek A komponensek egy része vezérlő, azaz a hozzájuk rendelt események (pl. egérkattintás) irányítják a programot. Az ablakba komponensek kerülnek A komponensek egy része vezérlő, azaz a hozzájuk rendelt események (pl. egérkattintás) irányítják a programot. Eseménykezelők: eljárások, melyeket az eseményekhez rendeltünk, és így meghatározzák az eseményre való reagálást. Eseménykezelők: eljárások, melyeket az eseményekhez rendeltünk, és így meghatározzák az eseményre való reagálást.
10
Project A program elnevezése Delphiben. Egy vagy több unitból áll. Minden formhoz tartozik egy unit. A program elnevezése Delphiben. Egy vagy több unitból áll. Minden formhoz tartozik egy unit. A project mentése: - minden projectet külön könyvtárba mentsünk! A project mentése: - minden projectet külön könyvtárba mentsünk! a Save All, vagy a Save Project as… pontokat válasszuk a Save All, vagy a Save Project as… pontokat válasszuk első mentéskor először a unit(ok)nak kell nevet adnunk, majd a projectnek első mentéskor először a unit(ok)nak kell nevet adnunk, majd a projectnek megnyitáskor ne a unit, hanem a project fájlt nyissuk meg megnyitáskor ne a unit, hanem a project fájlt nyissuk meg
11
Project fájlok.dpr – (Delphi Project) egy fál egy projectnél. A Delphi automatikusan kezeli. (TApplication osztály: alkalmazás – Windows kapcsolat, létrehozás, futtatás, leállítás.).dpr – (Delphi Project) egy fál egy projectnél. A Delphi automatikusan kezeli. (TApplication osztály: alkalmazás – Windows kapcsolat, létrehozás, futtatás, leállítás.).dfm – (Delphi Form): automatikus.dfm – (Delphi Form): automatikus.pas – unitok, ide írjuk a kódunkat, rengeteg automatizmus segíti a munkánkat..pas – unitok, ide írjuk a kódunkat, rengeteg automatizmus segíti a munkánkat.
12
Egy Delphi program tervezésének lépései Ablak(ok) testre szabása Ablak(ok) testre szabása Annak eldöntése, hogy mely eseményekre reagáljanak az adott ablakban található komponensek. Annak eldöntése, hogy mely eseményekre reagáljanak az adott ablakban található komponensek. Az eseménykezelő eljárások (és az ezeket kiszolgáló eljárások) megírása. Az eseménykezelő eljárások (és az ezeket kiszolgáló eljárások) megírása.
13
Delphi IDE Menü, eszköztár Menü, eszköztár Komponens paletta Komponens paletta Form tervező ablak Form tervező ablak Editor (kód) ablak Editor (kód) ablak Objektum felügyelő (Object Inspector): tulajdonságok, események. Objektum felügyelő (Object Inspector): tulajdonságok, események.
14
A tulajdonságok lehetnek szám-, illetve szöveg típusú (pl. Caption, Height) szám-, illetve szöveg típusú (pl. Caption, Height) felsorolt típus, logikai (legördülő lista, pl. Align, Enabled) felsorolt típus, logikai (legördülő lista, pl. Align, Enabled) halmaz ( + gomb, pl. BorderIcons) halmaz ( + gomb, pl. BorderIcons) osztály ( + vagy három pont gomb, mely utóbbira egy párbeszédablak nyílik ki, pl. Font) osztály ( + vagy három pont gomb, mely utóbbira egy párbeszédablak nyílik ki, pl. Font)
15
Unit szintaxisa Unit név; Interface Más unitokból is elérhető részek deklarációi (elj., fv.-ek fejlécei) UsesConstTypeVar…Implementation Unit szintű deklarációk, elj., fv.-ek részletezései Initialization Induláskor egyszer lefut Finalization Befejezéskor egyszer lefut End.
16
A vezérlők (form) fontosabb tulajdonságai Name: A vezérlők nevét tárolja, amely megegye- zik a programban a vezérlőt tároló változó nevével. A Delphi automatikusan értéket ad a Name tulaj- donságnak, valamint elvégzi a deklarációt. Vigyázzunk, hogy ne töröljük ki (ne keverjük össze a Caption tulajdonsággal)! Name: A vezérlők nevét tárolja, amely megegye- zik a programban a vezérlőt tároló változó nevével. A Delphi automatikusan értéket ad a Name tulaj- donságnak, valamint elvégzi a deklarációt. Vigyázzunk, hogy ne töröljük ki (ne keverjük össze a Caption tulajdonsággal)! Top, Left, Width, Height, Align Top, Left, Width, Height, Align Visible, Enabled Visible, Enabled Color, Font Color, Font
17
A vezérlők (form) fontosabb tulajdonságai TabStop, TabOrder TabStop, TabOrder Hint, ShowHint Hint, ShowHint Caption, (ne keverjük össze a Name-mel!) Caption, (ne keverjük össze a Name-mel!) FormStyle (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop) FormStyle (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop) Beállításuk: Beállításuk: tervezési időben (Objektum felügyelő) tervezési időben (Objektum felügyelő) futási időben (programban pl.: width:=400;) futási időben (programban pl.: width:=400;)
18
Néhány esemény OnClick, OnDblClick, OnClick, OnDblClick, OnMouseMove, OnMouseDown, OnMouseUp, OnMouseMove, OnMouseDown, OnMouseUp, OnKeyDown, OnKeyUp, OnKeyPress, OnKeyDown, OnKeyUp, OnKeyPress, OnEnter, OnExit, OnChange. OnEnter, OnExit, OnChange. Alapértelmezett esemény (komponensre dupla kattintás) Alapértelmezett esemény (komponensre dupla kattintás)
19
Fontosabb komponensek Milyen tulajdonságokkal (properties) rendelkezik a vezérlő? Milyen tulajdonságokkal (properties) rendelkezik a vezérlő? Milyen metódusok (methods) segítik a vezérlő használatát? Milyen metódusok (methods) segítik a vezérlő használatát? Mely eseményekkel (events) avatkozhatunk be a vezérlőelem működésébe? Mely eseményekkel (events) avatkozhatunk be a vezérlőelem működésébe? A komponensek hatékony felhasználásához az alábbi kérdésekre kell ismernünk a választ:
20
Menü Főmenü (ablakmenü), felbukkanó menü. TMainMenu, TPopupMenu vezérlőhalmaz, melynek elemei TMenuItem típusúak (OnClick) Főmenü (ablakmenü), felbukkanó menü. TMainMenu, TPopupMenu vezérlőhalmaz, melynek elemei TMenuItem típusúak (OnClick) Menütervező (dupla katt. a menü komponensre) Főbb tulajdonságok: Caption (&, -); ShortCut; Enabled; Checked; GroupIndex (ha azonos, a menü tételek rádiógomb szerűen működnek) Almenü: jobb egér gomb, majd értelemszerűen. Menütervező (dupla katt. a menü komponensre) Főbb tulajdonságok: Caption (&, -); ShortCut; Enabled; Checked; GroupIndex (ha azonos, a menü tételek rádiógomb szerűen működnek) Almenü: jobb egér gomb, majd értelemszerűen.
21
Vezérlőgombok Nyomógomb (Button), Caption, OnClick Nyomógomb (Button), Caption, OnClick Jelölő négyzet (CheckBox) Ha rákattintunk a Checked tulajdonsága változik. Általában két állapotú gomb (, de ha az AllowGrayed tulajdon- sága igaz, akkor 3 állapotú). Állapotát a State tulajdonság tárolja automatikusan. Alapeseménye: OnClick. Jelölő négyzet (CheckBox) Ha rákattintunk a Checked tulajdonsága változik. Általában két állapotú gomb (, de ha az AllowGrayed tulajdon- sága igaz, akkor 3 állapotú). Állapotát a State tulajdonság tárolja automatikusan. Alapeseménye: OnClick. Választógomb (RadioButton), Checked (true/false). Választógomb (RadioButton), Checked (true/false).
22
Választógomb Általában csoportokba szervezve használjuk, egy csoportban csak egy lehet bekapcsolt állapotú. Csoportokba szervezés: - GroupBox-ban: minden gomb külön eseménykezelővel rendelkezik (OnClick) - GroupBox-ban: minden gomb külön eseménykezelővel rendelkezik (OnClick) - RadioGroup-ban: - RadioGroup-ban: Items: nyomógombok feliratai Items: nyomógombok feliratai ItemIndex: melyik van bekapcsolva (0, 1, 2, …) ItemIndex: melyik van bekapcsolva (0, 1, 2, …) OnClick: egy eseménykezelő OnClick: egy eseménykezelő
23
ScrollBar Position, Position, Min, Max, Min, Max, SmallChange, LargeChange, SmallChange, LargeChange, OnChange OnChange
24
Szövegmegjelenítők Label (címke): Caption Label (címke): Caption Edit: egysoros szöveg szerkesztése. Text, ReadOnly, OnChange, Clear Edit: egysoros szöveg szerkesztése. Text, ReadOnly, OnChange, Clear Memo: többsoros szöveg szerkesztése Memo: többsoros szöveg szerkesztése
25
Memo A Lines tulajdonság, mely TStrings típusú, soronként teszi elérhetővé a szöveget (tervezési időben is). A Lines tulajdonság LoadFromFile, ill. SaveToFile metódusait használhatjuk be- és kivitelre. A Lines tulajdonság, mely TStrings típusú, soronként teszi elérhetővé a szöveget (tervezési időben is). A Lines tulajdonság LoadFromFile, ill. SaveToFile metódusait használhatjuk be- és kivitelre. (A Text tulajdonság futás közben elérhető) (A Text tulajdonság futás közben elérhető) Clear, Modified, CutToClipboard, CopyToClipboard, PasteFromClipboard metódusok segítik az egyszerű edit funkciók megvalósítását. Clear, Modified, CutToClipboard, CopyToClipboard, PasteFromClipboard metódusok segítik az egyszerű edit funkciók megvalósítását.
26
Listás vezérlők ListBox: Items (ez a tulajdonság TString típusú, tehát használhatók az Add, Delete, Clear, Insert metódusok), ListBox: Items (ez a tulajdonság TString típusú, tehát használhatók az Add, Delete, Clear, Insert metódusok), Items.Count, MultiSelect, ItemIndex, Selected, OnClick, Clear. Items.Count, MultiSelect, ItemIndex, Selected, OnClick, Clear. ComboBox: Edit + ListBox kombinációja. Style tulajd. pl: csDropDown, csDropDownList ComboBox: Edit + ListBox kombinációja. Style tulajd. pl: csDropDown, csDropDownList
27
Egyéb vezérlők Csoportosító vezérlők Csoportosító vezérlők GroupBox GroupBox Panel: három dimenziós megjelenésű csoportosító keret. Panel: három dimenziós megjelenésű csoportosító keret. Időzítő - Timer: System panel, nem vizuális vezérlő. Az Interval tulajdonságban megadott időközönként megtörténik az OnTimer esemény. Enabled Időzítő - Timer: System panel, nem vizuális vezérlő. Az Interval tulajdonságban megadott időközönként megtörténik az OnTimer esemény. Enabled
28
Egyéb vezérlők BitBtn: kép (Glyph tulajdonság) is van a nyomógombon BitBtn: kép (Glyph tulajdonság) is van a nyomógombon SpeedButton: eszköztár-gomb (Glyph) SpeedButton: eszköztár-gomb (Glyph) TrackBar: megjelenésében különbözik a ScrollBar-tól TrackBar: megjelenésében különbözik a ScrollBar-tól ProgressBar ProgressBar MaskEdit MaskEdit RichEdit: jobban támogatja a szövegek formázá- sát, mint a memo RichEdit: jobban támogatja a szövegek formázá- sát, mint a memo
29
Párbeszédablakok (Dialogs unit)
30
Üzenetablakok ShowMessage eljárás: egyszerű üzenet megjelenítése. ShowMessage eljárás: egyszerű üzenet megjelenítése. Megjelenik a paraméterként megadott üzenet egy kis ablak- an, egy OK gombbal. A szintaktikája: (ld. Delphi help): Declaration procedure ShowMessage(const Msg: string); A használatára egy példa (ld. Delphi help): procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Push this button'); ShowMessage('Push this button');end;
31
MessageDlg függvény: egyszerű dialógusablak. MessageDlg függvény: egyszerű dialógusablak. function MessageDlg(const Msg: string; AType:TMsgDlgType; AButtons: TMsgDlgButtons; AType:TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint): Word; HelpCtx: Longint): Word; A függvény paraméterei: Msg: a megjelenített üzenet, Msg: a megjelenített üzenet, AType: az üzenet doboz külalakját határozza meg. Lehet: AType: az üzenet doboz külalakját határozza meg. Lehet: mtWarningfigyelmeztetés mtWarningfigyelmeztetés mtErrorhiba mtErrorhiba mtInformationinformáció mtInformationinformáció mtConfirmationmegerősítés mtConfirmationmegerősítés mtCustomfelhasználó által definiált. mtCustomfelhasználó által definiált. AButtons: egy halmaz, mely meghatározza, hogy milyen nyomógombok legyenek a boxban. Elemei lehetnek: mbYes, mbNo, mbOk, mbCancel,… (ld. help). AButtons: egy halmaz, mely meghatározza, hogy milyen nyomógombok legyenek a boxban. Elemei lehetnek: mbYes, mbNo, mbOk, mbCancel,… (ld. help). HelpCtx: akkor szükséges, ha programunk tartalmaz help- et. Egyébként: 0. HelpCtx: akkor szükséges, ha programunk tartalmaz help- et. Egyébként: 0.
32
A függvény visszatérési értéke a leütött gombtól függ. Lehet: mrYes, mrNo, mrOk, mrCancel,… (ezek nevesített konstansok). A használatára egy példa (ld. Delphi help): procedure TForm1.Button1Click(Sender: TObject); begin if MessageDlg('Welcome. Exit now?', if MessageDlg('Welcome. Exit now?', mtInformation, [mbYes, mbNo], 0) = mrYes then mtInformation, [mbYes, mbNo], 0) = mrYes then Close; Close;end; Megj. Van egy a ShowMessage eljáráshoz hasonló, de alacsonyabb szintű függvény, a MessageBox. Ez a Windows API része. Bővebben ld. help.
33
Egyszerű adatbeviteli párbeszédablakok InputBox InputBox function InputBox(const ACaption, APrompt, ADefault: string): string APrompt, ADefault: string): string InputQuery: Ha szükség van arra az informá- cióra is, hogy a felhasználó az OK v. a Cancel gom- bot nyomta-e meg. InputQuery: Ha szükség van arra az informá- cióra is, hogy a felhasználó az OK v. a Cancel gom- bot nyomta-e meg. function InputQuery(const ACaption, APrompt: string, var Value: string): APrompt: string, var Value: string): Boolean Boolean
34
Általános párbeszédablakok A Dialogs paletta lapon találhatók (OpenDialog, SaveDialog, FontDialog, ColorDialog, PrintDialog, PrinterSetupDialog, FindDialog, ReplaceDialog, OpenPictureDialog, SavePictureDialog). A Dialogs paletta lapon találhatók (OpenDialog, SaveDialog, FontDialog, ColorDialog, PrintDialog, PrinterSetupDialog, FindDialog, ReplaceDialog, OpenPictureDialog, SavePictureDialog). A tulajdonságok beállításával paramé- terezhetjük az ablakok megjelenítését. A tulajdonságok beállításával paramé- terezhetjük az ablakok megjelenítését.
35
Általános párbeszédablakok Az execute metódussal jelenítjük meg pl.: if Párbeszédablak.Execute then begin begin //jóváhagyással történt a kilépés //jóváhagyással történt a kilépés end endelse begin begin //jóváhagyás nélküli kilépés //jóváhagyás nélküli kilépés end end
36
Példa - OpenDialog procedure TForm1.SpeedButton1Click(Sender: TObject); begin if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName); if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);end;
37
Új formként megjelenő párbeszédablakok Használhatjuk az előkészített párbeszéd- ablak mintákat (File/New Dialogs fül), Használhatjuk az előkészített párbeszéd- ablak mintákat (File/New Dialogs fül), vagy egy üres formot adhatunk hozzá a projecthez (New Form). vagy egy üres formot adhatunk hozzá a projecthez (New Form). A párbeszédablak általában modális, azaz be kell zárni az aktivizáló ablakhoz való visszatéréshez. A párbeszédablak általában modális, azaz be kell zárni az aktivizáló ablakhoz való visszatéréshez.
38
Új formként megjelenő párbeszédablakok A formot a ShowModal metódusával jelenítjük meg, A formot a ShowModal metódusával jelenítjük meg, visszatérési értéke a form bezárásakor a form ModalResult tulajdonsága lesz, amit általában a bezáró nyomógombtól kap (pl. mrOK, mrCancel), visszatérési értéke a form bezárásakor a form ModalResult tulajdonsága lesz, amit általában a bezáró nyomógombtól kap (pl. mrOK, mrCancel), tehát tervezéskor a gombok ModalResult tulajdon- ságát állítjuk be (az előre elkészített párbeszédablak mintáknál ezt már beállították). tehát tervezéskor a gombok ModalResult tulajdon- ságát állítjuk be (az előre elkészített párbeszédablak mintáknál ezt már beállították).
39
Grafika A Delphi grafikai lehetőségeit a Canvas objek- tum testesíti meg, A Delphi grafikai lehetőségeit a Canvas objek- tum testesíti meg, pl. az Image objektum rendelkezik ilyen tulaj- donsággal: pl. Image1.Canvas. pl. az Image objektum rendelkezik ilyen tulaj- donsággal: pl. Image1.Canvas. procedure TForm1.Button1Click(Sender: TObject); begin with Image1.Canvas do begin Pen.Color:=clRed; MoveTo(100,100); LineTo(200,100); end; end;
40
Canvas - tulajdonságok Brush: Brush: Color (clBlack, clGreen, …) Color (clBlack, clGreen, …) Style (bsSolid, bsClear, bsCross, …) Style (bsSolid, bsClear, bsCross, …) Pen: Pen: Color Color Width (integer) Width (integer) Style (psSolid, psDash, …) Style (psSolid, psDash, …) Mode (pmCopy, pmXor, …) Mode (pmCopy, pmXor, …) Pixels (TColor típusú tömb), pl: pixels[100,100]:=clBlack; Pixels (TColor típusú tömb), pl: pixels[100,100]:=clBlack;
41
Canvas - metódusok MoveTo MoveTo LineTo LineTo TextOut, TextHeight, TexWidth TextOut, TextHeight, TexWidth Arc, Chord, Ellipse, Pie Arc, Chord, Ellipse, Pie Rectangle, RoundRect Rectangle, RoundRect FloodFill FloodFill Procedure FloodFill(x,y:integer, Color:TColor, FillStyle:TFillStyle); TFillStyle: fsSurface, fsBorder TFillStyle: fsSurface, fsBorder
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.