1 / 29

Áttérés egy vizuális/grafikus program- fejlesztői környezetre (minimális tudnivalók)

Áttérés egy vizuális/grafikus program- fejlesztői környezetre (minimális tudnivalók). Szlávi Péter ELTE Informatika Szakmódszertani Csoport szlavi@ludens.elte.hu http: //izzo.inf.elte.hu/~szlavi. Tartalom. 1 A 4GL lényege 1.1 Egy mondatban…

rene
Download Presentation

Áttérés egy vizuális/grafikus program- fejlesztői környezetre (minimális tudnivalók)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Áttérés egy vizuális/grafikus program- fejlesztői környezetre(minimális tudnivalók) Szlávi Péter ELTE Informatika Szakmódszertani Csoport szlavi@ludens.elte.huhttp://izzo.inf.elte.hu/~szlavi

  2. Tartalom 1 A 4GL lényege 1.1 Egy mondatban… 1.2 A A grafikus kezelőfelület elemei és „szervei” 1.3 A működés „filozófiája” 2 Ablakkellékek és események 3 Grafikus környezet és OOP 4 Az „újszerű” programozási stílusról 5 Programfelépítés 6 GUI 7 Praktika 7.1 A kezdő lépések 7.2 A legfontosabb grafikus eszközök osztályai a palettákon 7.3 Pozitív és negatív praktikák Áttérés egy 4GL programfejlesztői környezetre

  3. 1 A 4GL lényege ?4GL? 1.1 Egy mondatban… Grafikus (operációs rendszer) környezeten keresztüli programfejlesztés. Áttérés egy 4GL programfejlesztői környezetre

  4. 1 A 4GL lényege 1.2 A grafikus kezelőfelület elemei és „szervei” Alapelemek Beavatkozó szervek Elvárások Áttérés egy 4GL programfejlesztői környezetre

  5. 1 A 4GL lényege 1.3 A működés „filozófiája” • a „főprogram” feladata: ablak felépítése, kirajzolása (minden ablakkellékkel), és ese-ményfigyelés, továbbá valamilyen esemény esetén a megfelelő eseménykezelő aktivi-zálása. • az eseménykezelő elvégzi az eseménykor végrehajtandó feladatokat. Áttérés egy 4GL programfejlesztői környezetre

  6. 2 Ablakkellékek és események Egy „szerényen dekorált” ablak címkesor; bezáró gomb, minima-lizáló gomb, teljes képernyőre kinyitó gomb; gördítő sávok; keret a méretezéshez. Áttérés egy 4GL programfejlesztői környezetre

  7. 2 Ablakkellékek és események Egy „kellékekben gazdag” ablak Füllel kiválasztható oldalak; konstans szövegek; lenyíló listák; választó- és egyéb gombok; kép. A beállítás sorrendje a felhaszná-lóra van bízva. Áttérés egy 4GL programfejlesztői környezetre

  8. 3 Grafikus környezet és OOP ? OOP ? A grafikus „kellékek” (ablakok, ikonok, gombok, menük stb.) objektumok. Ui.: • Rendelkeznek számos jellemzővel. • Tartoznak hozzájuk események által kiváltott, fela-datfüggetlen és -függő tevékenységek. Áttérés egy 4GL programfejlesztői környezetre

  9. 4 Az „újszerű” programozási stílusról Mennyiben más ez? • meg kell tervezni az alkalmazás kommunikációsfelületét (ablakok, ablakösszetevők), azaz a GUI-t (osztály + „objektum-topológia”: mi, hol, mekkora, milyen … legyen); • a kezeléssel összefüggő (várt) eseményeket(mi, mikor aktivizálódjon), és • kivitelezni a megfelelő eseménykezelőkműködését(mi, hogyan működjön). Áttérés egy 4GL programfejlesztői környezetre

  10. 5 Programfelépítés A szükséges (leíró) fájlok: • Maga a főprogram(forrás és kód). • Az egyes ablakkellékek osztályát (leírását és eseménykezelőit) tartalmazó programegységek: unitok (forrás és kód). • További, a hagyományos programozás is megkívánta, legfőképpen típusokat (pl. listát, sort stb.) megvalósító programegységek: unitok (forrás és kód). Áttérés egy 4GL programfejlesztői környezetre

  11. 5 Programfelépítés Továbbiak: • Ablakleíró (minden egyeshez, külön-külön): mik és milyen jellemzőkkel vannak az adott ablakon. • Menüleíró (minden egyes ablakra került menü-höz): milyen a menüstruktúra, mely eljárások tartoznak az egyes menüpontokhoz. Áttérés egy 4GL programfejlesztői környezetre

  12. 5 Programfelépítés 1. példa: • projekt_0.exe: az alkalmazás maga • projekt_0.lpi: a projekt xml leírása • unit1.lfm, ~.lrs: az osztály leírása (LazarusForm/-Resource) • unit1.pas: az osztály Pascal leírása • projekt_0.lpr az alkalmazás pascal főprogramja Áttérés egy 4GL programfejlesztői környezetre

  13. 5 Programfelépítés unit1.lfm: object Form1: TForm1 Caption = '0. programom' ClientHeight = 300 ClientWidth = 400 PixelsPerInch = 96 Position = poDesktopCenter HorzScrollBar.Page = 399 VertScrollBar.Page = 299 Left = 290 Height = 300 Top = 149 Width = 400 end Áttérés egy 4GL programfejlesztői környezetre

  14. 5 Programfelépítés unit1.lrs: { This is an automatically generated lazarus resource file } LazarusResources.Add('TForm1','FORMDATA',[ 'TPF0'#6'TForm1'#5'Form1'#7'Caption' +#6#12'0. programom'#12'ClientHeight' +#3','#1#11'ClientWidth'#3#144#1#13 +'PixelsPerInch'#2'`'#8'Position' +#7#15'poDesktop' +'Center'#18'HorzScrollBar.Page' +#3#143#1#18'VertScrollBar.Page' +#3'+'#1#4'Left'#3'"'#1#6'Height' +#3','#1#3'Top'#3#149#0#5'Width' +#3#144#1#0#0 ]); object Form1: TForm1 Caption = '0. programom' ClientHeight = 300 ClientWidth = 400 PixelsPerInch = 96 Position = poDesktopCenter HorzScrollBar.Page = 399 VertScrollBar.Page = 299 Left = 290 Height = 300 Top = 149 Width = 400 end Áttérés egy 4GL programfejlesztői környezetre

  15. 5 Programfelépítés projekt_0.lpr: {$mode objfpc}{$H+} uses Interfaces, // this includes the LCL widgetset Forms { add your units here }, Unit1; begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Áttérés egy 4GL programfejlesztői környezetre

  16. 5 Programfelépítés unit1.pas: unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs; type { TForm1 } TForm1 = class(TForm) private { private declarations } public { public declarations } end; »»» »»» var Form1: TForm1; implementation { TForm1 } initialization {$I unit1.lrs} end. Áttérés egy 4GL programfejlesztői környezetre

  17. 5 Programfelépítés 2. példa: az előbbi minimálisan bővítve Áttérés egy 4GL programfejlesztői környezetre

  18. 5 Programfelépítés unit1.lfm: object Form1: TForm1 Caption = '0. programom' … Width = 400 object Vege: TButton BorderSpacing.OnChange = nil Caption = 'Vége' OnClick = VegeClick TabOrder = 0 Left = 295 Height = 34 Hint = 'Kilépés' Top = 243 Width = 73 end end Áttérés egy 4GL programfejlesztői környezetre

  19. 5 Programfelépítés »»» var Form1: TForm1; implementation { TForm1 } procedure TForm1.VegeClick( Sender: TObject); begin ShowMessage('Sikeresen kilépett.'); close end; initialization {$I unit1.lrs} end. unit1.pas: unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons; type { TForm1 } TForm1 = class(TForm)Vege: TButton; procedure VegeClick(Sender: TObject); private { private declarations } public { public declarations } end; »»» Áttérés egy 4GL programfejlesztői környezetre

  20. 5 Programfelépítés 3. példa: „tisztességesebb”, klasszikus alkalmazás, amely menüt és két „memó”-t tartalmaz, de semmi „feladatfüggőt” elvégzőt nem; a menüpontok is éppen csak jelzik az elvégzendő részfeladatot: • beolvasás, • feldolgozás, • kiírás: Áttérés egy 4GL programfejlesztői környezetre

  21. 5 Programfelépítés Néhány screenshot a futásáról: Áttérés egy 4GL programfejlesztői környezetre

  22. 5 Programfelépítés Áttérés egy 4GL programfejlesztői környezetre

  23. 5 Programfelépítés … object MainMenu1: TMainMenu object MenuItem1: TMenuItem Caption = '&Vezérlés' object MenuItem4: TMenuItem Caption = 'Paraméter&beolvasás' ShortCut = 16450 OnClick = MenuItem4Click end … end unit1.lfm: object MemoBe: TMemo BorderSpacing.OnChange = nil Lines.Strings = ( 'Ide kerülnek a beolvasott ' 'paraméterek.' '1 paraméter = 1 sor.' ) ReadOnly = True ScrollBars = ssAutoBoth TabOrder = 0 Left = 21 Height = 206 Hint = 'Paraméterértékek' Top = 54 Width = 165 End object EgyszeruEsTipikus: TEgyszeruEsTipikus Caption = 'EgyszeruEsTipikus' ClientHeight = 280 ClientWidth = 400 Menu = MainMenu1 … object LabelBe: TLabel BorderSpacing.OnChange = nil Caption = 'Paraméterek:' Color = clNone Left = 21 Height = 17 Top = 30 Width = 67 end … Áttérés egy 4GL programfejlesztői környezetre

  24. 5 Programfelépítés implementation { TEgyszeruEsTipikus } procedure TEgyszeruEsTipikus.Menu Item4Click(Sender: TObject); (* Paraméterbeolvasás *) begin (*itt olvassuk be a paramétereket*) MenuItem2.Enabled:=True; (*a Feldolgozás most már kiválasztható*) MenuItem6.Enabled:=False; (*Paraméterbeovasás után az Ered- ménykiírás nem választható ki*) ShowMessage('A paramétereket beolvastuk.'); end; … initialization {$I unit1.lrs} end. unit1.pas: procedure MenuItem4Click( Sender: TObject); … private { private declarations } public { public declarations } end; var EgyszeruEsTipikus: TEgyszeruEsTipikus; unit Unit1; {$mode objfpc}{$H+} interface uses … Menus, StdCtrls; type { TEgyszeruEsTipikus } TEgyszeruEsTipikus = class(TForm) LabelBe: TLabel; MemoBe: TMemo; LabelKi: TLabel; MemoKi: TMemo; MainMenu1: TMainMenu; MenuItem1: TMenuItem; (* Vezérlés -- Főmenü *) MenuItem4: TMenuItem; (* Paraméterbeolvasás *) … Áttérés egy 4GL programfejlesztői környezetre

  25. 6 GUI A GUI „munka közben”: • Menü- és eszköz-sor • Object inspector • Source editor • Messages • Form Áttérés egy 4GL programfejlesztői környezetre

  26. 7 Praktika 7.1 A kezdő lépések • A Lazarus elindítása • New + Application • Az eszközpalettáról kiválasztjuk a kívánt (grafikus) eszközöket, • beállítjuk kezdő állapotukat, • kiválasztjuk a kívánatos eseményeket, s elkészítjük az eseménykezelő eljárás kódját, • kimentjük (azaz Save As a megfelelő alkönyvtárba) • lefordítjuk, futtatjuk (Run + Run = F9) Áttérés egy 4GL programfejlesztői környezetre

  27. 7 Praktika 7.2 A legfontosabb grafikus eszközök osztá-lyai a palettákon Standard komponens-paletta: TMain, TButton, TLabel, TEdit, TMemo, TCheckBox, TCheckGroup, TListbox, TRedioButton, TRadioGroup Áttérés egy 4GL programfejlesztői környezetre

  28. 7 Praktika Additional komponens-paletta: TStringGrid– szövegek mátrixos elrendezésben Common Control komponens-paletta: TPageControl– fülekkel lapozható „füzet” Áttérés egy 4GL programfejlesztői környezetre

  29. 7 Praktika 7.3 Pozitív és negatív praktikák … Lazarus „nem-szeretemségei, szerencsét-lenségei” és egyéb tanácsok … • Saját névkonvenció (pl. lbBe: TLabel, mmBe:TMemo) • Ha lehet, ne nyomkövessünk! • Utólag ne változtassunk a kontrolok nevén! • Fordítás (nyomkövetés) közben nem tanácsos a formot mozgatni (minimalizálni)! Áttérés egy 4GL programfejlesztői környezetre

More Related