Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Delphi  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.

Hasonló előadás


Az előadások a következő témára: "Delphi  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."— Előadás másolata:

1 Delphi  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)

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).  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  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ű).

4 Object Pascal  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  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  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!’;  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.  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.),  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.)  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.

8 Object Pascal  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, …).

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).  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.

10 Project  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 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  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.) .dfm – (Delphi Form): automatikus .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  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.

13 Delphi IDE  Menü, eszköztár  Komponens paletta  Form tervező ablak  Editor (kód) ablak  Objektum felügyelő (Object Inspector): tulajdonságok, események.

14 A tulajdonságok lehetnek  szám-, illetve szöveg típusú (pl. Caption, Height)  felsorolt típus, logikai (legördülő lista, pl. Align, Enabled)  halmaz ( + gomb, pl. BorderIcons)  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)!  Top, Left, Width, Height, Align  Visible, Enabled  Color, Font

17 A vezérlők (form) fontosabb tulajdonságai  TabStop, TabOrder  Hint, ShowHint  Caption, (ne keverjük össze a Name-mel!)  FormStyle (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop)  Beállításuk:  tervezési időben (Objektum felügyelő)  futási időben (programban pl.: width:=400;)

18 Néhány esemény  OnClick, OnDblClick,  OnMouseMove, OnMouseDown, OnMouseUp,  OnKeyDown, OnKeyUp, OnKeyPress,  OnEnter, OnExit, OnChange.  Alapértelmezett esemény (komponensre dupla kattintás)

19 Fontosabb komponensek  Milyen tulajdonságokkal (properties) rendelkezik a vezérlő?  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? 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)  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  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).

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)  - RadioGroup-ban:  Items: nyomógombok feliratai  ItemIndex: melyik van bekapcsolva (0, 1, 2, …)  OnClick: egy eseménykezelő

23 ScrollBar  Position,  Min, Max,  SmallChange, LargeChange,  OnChange

24 Szövegmegjelenítők  Label (címke): Caption  Edit: egysoros szöveg szerkesztése. Text, ReadOnly, OnChange, Clear  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 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.

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), 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

27 Egyéb vezérlők  Csoportosító vezérlők  GroupBox  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

28 Egyéb vezérlők  BitBtn: kép (Glyph tulajdonság) is van a nyomógombon  SpeedButton: eszköztár-gomb (Glyph)  TrackBar: megjelenésében különbözik a ScrollBar-tól  ProgressBar  MaskEdit  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. 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. 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,  AType: az üzenet doboz külalakját határozza meg. Lehet:  mtWarningfigyelmeztetés  mtErrorhiba  mtInformationinformáció  mtConfirmationmegerősítés  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).  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 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. 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 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),  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.

38 Új formként megjelenő párbeszédablakok  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),  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,  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:  Color (clBlack, clGreen, …)  Style (bsSolid, bsClear, bsCross, …)  Pen:  Color  Width (integer)  Style (psSolid, psDash, …)  Mode (pmCopy, pmXor, …)  Pixels (TColor típusú tömb), pl: pixels[100,100]:=clBlack;

41 Canvas - metódusok  MoveTo  LineTo  TextOut, TextHeight, TexWidth  Arc, Chord, Ellipse, Pie  Rectangle, RoundRect  FloodFill Procedure FloodFill(x,y:integer, Color:TColor, FillStyle:TFillStyle); TFillStyle: fsSurface, fsBorder TFillStyle: fsSurface, fsBorder


Letölteni ppt "Delphi  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."