Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Visual FoxPro – formuláře Form Designer, objektové programování.

Podobné prezentace


Prezentace na téma: "Visual FoxPro – formuláře Form Designer, objektové programování."— Transkript prezentace:

1 Visual FoxPro – formuláře Form Designer, objektové programování

2 Obrazovka Form Designeru Plocha formuláře Okno datového prostředí Okno vlastností Vlastnosti, události, metody a jejich nastavení, podle abecedy Název objektu Komentář – popis aktuálně vybraného řádku, vlastnosti, metody

3 ViewClasses Text box Command button OptionGroup Combo box Spinner Image PageFrame OLE Bound Control Shape Separator ButtonLock SelectObjects Label Edit box Command Group Check box List box Grid Timer ActiveX Control Line Container Hyperlink Builder Lock Typy objektů vkládaných do formulářů SelectObjects Label Edit box Command Group Check box List box Grid Timer ActiveX Control Line Container Hyperlink Builder Lock Panel nástrojů

4 Typy aplikací Multiple-document interface (MDI) Multiple-document interface (MDI) jedno hlavní okno, ostatní jsou potomci hl. okna (VFP) jedno hlavní okno, ostatní jsou potomci hl. okna (VFP) Single-document interface (SDI) Single-document interface (SDI) jedno nebo více nezávislých oken (pošta – 1 mail – 1 nezávislé okno) jedno nebo více nezávislých oken (pošta – 1 mail – 1 nezávislé okno) Typy formulářů Top level form – nezávislé okno Top level form – nezávislé okno Child form – v rodič. okně, nelze přetáhnout vně Child form – v rodič. okně, nelze přetáhnout vně Floating form – má rodiče, lze přesunout i mimo rodič. okno Floating form – má rodiče, lze přesunout i mimo rodič. okno

5 Kontejnery a členové Container Can contain Column Headers, and any objects except form sets, forms, toolbars, timers, and other columns Command button group Command buttons Form set Forms, toolbars Form Page frames, grids, any controls GridColumns Option button group Option buttons Page frame Pages Page Grids, any controls

6 Rozdíly Obrazovka – formulář Obrazovka – formulář Chybí krok generování kódu (u menu to zůstalo) Chybí krok generování kódu (u menu to zůstalo) Formulář je objekt – kontejner Formulář je objekt – kontejner vyrovnávání dat vyrovnávání dat přizpůsobivost za běhu programu přizpůsobivost za běhu programu

7 Objekty Objekt – formulář, text. pole, tlačítko,... data - vlastnosti objektu data - vlastnosti objektu kód - metody objektu - Release() kód - metody objektu - Release() metoda Click se spouští událostí Click metoda Click se spouští událostí Click události – věci, které mohou nastat (41 z VFP 3.0) události – věci, které mohou nastat (41 z VFP 3.0) aktivity, které provádí uživatel – klikne myší aktivity, které provádí uživatel – klikne myší automaticky v běhu programu automaticky v běhu programu OnClick(), GotFocus(), LostFocus() OnClick(), GotFocus(), LostFocus() Kontejnery Kontejnery formulář obsahuje objekty – tlačítka, text. pole,... formulář obsahuje objekty – tlačítka, text. pole,...

8 Příkazy pro práci s formuláři CREATE FORM [FormName | ?] CREATE FORM [FormName | ?] [AS cClassName FROM cClassLibraryName | ?] [NOWAIT] [SAVE] [DEFAULT] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] Z menu Z menu New -> Form -> New File nebo Wizard New -> Form -> New File nebo Wizard

9 Příkazy pro práci s formuláři MODIFY FORM [FormName | ?][NOWAIT] MODIFY FORM [FormName | ?][NOWAIT] [METHOD MethodName] [NOENVIRONMENT][SAVE] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] Z menu Z menu Open -> Form -> vybereme soubor z adresáře Open -> Form -> vybereme soubor z adresáře

10 Spuštění formuláře DO FORM FormName | ? [NAME VarName [LINKED]] [WITH cParameterList] [TO VarName] [NOREAD] [NOSHOW] DO FORM FormName | ? [NAME VarName [LINKED]] [WITH cParameterList] [TO VarName] [NOREAD] [NOSHOW] spuštění formuláře FormName spuštění formuláře FormName NAME VarName - jméno formuláře pro přístup do něj, pokud nezadáme, bude FormName NAME VarName - jméno formuláře pro přístup do něj, pokud nezadáme, bude FormName WITH cParameterList – vstupní argumenty do form. WITH cParameterList – vstupní argumenty do form. TO VarName – výstupní proměnná nebo pole z formuláře TO VarName – výstupní proměnná nebo pole z formuláře NOREAD – pro zpětnou kompatibilitu NOREAD – pro zpětnou kompatibilitu NOSHOW – neproběhne show() metoda formuláře NOSHOW – neproběhne show() metoda formuláře

11 Předávání parametrů do/z formuláře WITH cParameterList WITH cParameterList parametry se předávají do formuláře do Init() metody formuláře nebo sady formulářů, za podmínky, že vlastnost WindowType formuláře je nastavena na ModeLess (0) nebo Modal (1). parametry se předávají do formuláře do Init() metody formuláře nebo sady formulářů, za podmínky, že vlastnost WindowType formuláře je nastavena na ModeLess (0) nebo Modal (1). TO VarName TO VarName určuje proměnnou, do které se uloží návratová hodnota z formuláře. Jestliže proměnná neexistuje, je automaticky vytvořena. V události Unload() formuláře použijte příkaz RETURN s návratovou hodnotou, jinak je vrácena implicitní hodnota true (.T.). Jestliže použijete tuto klauzuli, vlastnost formuláře WindowType musí být nastavena na 1 (Modal). určuje proměnnou, do které se uloží návratová hodnota z formuláře. Jestliže proměnná neexistuje, je automaticky vytvořena. V události Unload() formuláře použijte příkaz RETURN s návratovou hodnotou, jinak je vrácena implicitní hodnota true (.T.). Jestliže použijete tuto klauzuli, vlastnost formuláře WindowType musí být nastavena na 1 (Modal).

12 Odkazy - ukazatele This – ukazuje na akt. objekt This – ukazuje na akt. objekt ThisForm – ukazuje na akt. formulář ThisForm – ukazuje na akt. formulář Parent – ukazuje na rodičovský objekt Parent – ukazuje na rodičovský objekt _SCREEN.ActiveForm.BackColor=RGB(255,0,0) _SCREEN.ActiveForm.BackColor=RGB(255,0,0) _SCREEN.ActiveForm.AlwaysOnTop=.T. _SCREEN.ActiveForm.AlwaysOnTop=.T.

13 Společné vlastnosti a metody BackColor, BaseClass, BorderStyle BackColor, BaseClass, BorderStyle Caption, Class, ClassLibrary, Comment, Enabled, Font… Caption, Class, ClassLibrary, Comment, Enabled, Font… ForeColor, Height, HelpContextId, Left, MousePointer, ForeColor, Height, HelpContextId, Left, MousePointer, Name, ParentClass,TabIndex, TabStop, Tag, Top, Name, ParentClass,TabIndex, TabStop, Tag, Top, Visible, Width Visible, WidthMetody AddObject(), Move(), RemoveObject(), SaveAsClass() AddObject(), Move(), RemoveObject(), SaveAsClass() ZOrder() ZOrder()

14 Společné události Click, DblClick, Destroy, Error, Click, DblClick, Destroy, Error, GotFocus, Init, KeyPress, GotFocus, Init, KeyPress, LostFocus, LostFocus, MouseDown, MouseMove,MouseUp, MouseDown, MouseMove,MouseUp, RightClick RightClick

15 Sekvence událostí při spuštění formuláře 1. Formulář se načte (zavede) Form.DataEnvironment.BeforeOpenTables Form.Load 2. Vytvoří se všechny objekty, které formulář obsahuje Form.DataEnvironment.Cursor.Init Form.DataEnvironment.Init Form.Text1.Init... Form.Init 3. Formulář se aktivuje Form.Activate 4. Dojde k události When prvního ovládacího prvku Form.Text1.When 5. Formulář "získá fokus„ - stane se aktivním Form.GotFokus 6. Objekt prvního ovládacího prvku „získá fokus“ Form.Text1.GotFokus

16 Sekvence událostí při uzavření formuláře Editujeme Text2 a dáme Exit: Form.Text2.Valid()Form.Text2.LostFocus()Form.QueryUnloadForm.DestroyForm.Text1.DestroyForm.Text2.DestroyForm.UnloadForm.DataEnvironment.AfterCloseTableForm.DataEnvironment.Destroy Form.DataEnvironment.Cursor(s).Destroy

17 Nastavení vlastností Obecně: Container.Object.Property = Value For example, the following statements set various properties of a text box named txtDate on a form named frmPhoneLog: frmPhoneLog.txtDate.Value = DATE( ) && Display the current date frmPhoneLog.txtDate.Enabled =.T. && The control is enabled frmPhoneLog.txtDate.ForeColor = RGB(0,0,0) && black text frmPhoneLog.txtDate.BackColor = RGB(192,192,192) && gray bg For the property settings in the preceding examples, frmPhoneLog is the highest-level container object. If frmPhoneLog were contained in a form set, you would also need to include the form set in the parent path: frsContacts.frmPhoneLog.txtDate.Value = DATE( )

18 Nastavení více vlastností jedním příkazem The WITH... ENDWITH structure simplifies setting multiple properties. For example, to set multiple properties of a column in a grid in a form in a form set, you could use the following syntax: WITH THISFORMSET.frmForm1.grdGrid1.grcColumn1.Width = 5.Resizable =.F..ForeColor = RGB(0,0,0).BackColor = RGB(255,255,255).SelectOnEntry =.T. ENDWITH

19 Vlastnosti formuláře BackColor, BorderStyle, AutoCenter BackColor, BorderStyle, AutoCenter MinButton, MaxButton – lze minimalizovat, maximal. MinButton, MaxButton – lze minimalizovat, maximal. WindowState - 0,1,2 (normal, mini, maxi) WindowState - 0,1,2 (normal, mini, maxi) Události a metody Deactivate, HalfHeightCaption, Caption, ControlBox, Release(), Closable, MinWith, MinHeight, ScaleMode, AlwaysOnTop, Icon, KeyPress(), KeyPreview, Hide(), Deactivate, HalfHeightCaption, Caption, ControlBox, Release(), Closable, MinWith, MinHeight, ScaleMode, AlwaysOnTop, Icon, KeyPress(), KeyPreview, Hide(), LockScreen, SetAll LockScreen, SetAll QueryUnload – když se formulář uzavírá prostřednictvím řídicího menu, příkazu clear all nebo Quit – ošetřit uložení změn QueryUnload – když se formulář uzavírá prostřednictvím řídicího menu, příkazu clear all nebo Quit – ošetřit uložení změn WindowType = 1 modální formulář, Show(1) WindowType = 1 modální formulář, Show(1) WindowType = 0 nemodální formulář, Show(2) WindowType = 0 nemodální formulář, Show(2) DataSession – Default DataSession, Private DataSession DataSession – Default DataSession, Private DataSession BufferMode - 1 pesimistické, 2 optimistické TableUpdate(), TableRevert() BufferMode - 1 pesimistické, 2 optimistické TableUpdate(), TableRevert()

20 Vlastnosti DataEnvironmentu AutoCloseTables, AutoOpenTables, InitialSelectedAlias AutoCloseTables, AutoOpenTables, InitialSelectedAliasUdálosti BeforeOpenTables, AfterCloseTables BeforeOpenTables, AfterCloseTablesMetody CloseTables(), OpenTables() CloseTables(), OpenTables() Vlastnosti kurzorové tabulky Alias, BufferModeOverride (0-5), CursorSource, Database, Exclusive, Filter, NoDataOnLoad, Order, ReadOnly Alias, BufferModeOverride (0-5), CursorSource, Database, Exclusive, Filter, NoDataOnLoad, Order, ReadOnly Vlastnosti objektu relace ChildOrder, ChildAlias, OneToMany, ParentAlias, RelationalExpr ChildOrder, ChildAlias, OneToMany, ParentAlias, RelationalExpr

21 Objekt Label Statický (víceméně) text ve formuláři, popisy k hodnotám položek, … Vlastnosti Name – jméno objektu Name – jméno objektu Caption – „nadpis“ objektu Caption – „nadpis“ objektu WordWrap – automatické zalomení, AutoSize WordWrap – automatické zalomení, AutoSize Alignment, BackColor, ZOrder Alignment, BackColor, ZOrder BackStyle 1-Opaque - viditelný celý titulek BackStyle 1-Opaque - viditelný celý titulek Systémové události Init(), Destroy(), Error(), UIEnable() Init(), Destroy(), Error(), UIEnable()

22 TextBox, EditBox Objekt TextBox, EditBox Vlastnosti Margin impl. 2 pix., SpecialEffect, SelectedBackColor, SelectedForeColor, Name Format, InputMask, PasswordChar, ReadOnly Value – vlastnost hodnota ControlSource – proměnná nebo položka pro TextBox Metody Refresh() – pokud se změní zdroj – překreslí obrazovku Vlastnosti pro manipulaci s textem SelStart, SelLength, SelText, HideSelection

23 TextBox, EditBox Objekt TextBox, EditBox Události InteractiveChange InteractiveChange ProgrammaticChange ProgrammaticChange Valid, When, GotFocus, LostFocus Valid, When, GotFocus, LostFocus KeyPress KeyPress RangeHigh, RangeLow RangeHigh, RangeLow

24 Objekt CommandButton Příkazové tlačítko Vlastnosti Cancel, Default, Cancel, Default, DisableForeColor, Picture, DisabledPicture, DownPicture DisableForeColor, Picture, DisabledPicture, DownPicture StatusBarText, Enabled StatusBarText, Enabled MousePointer, Style – 0 Standard, 1 Invisible MousePointer, Style – 0 Standard, 1 InvisibleMetody SetFocus(), Click(), Destroy(), Init() SetFocus(), Click(), Destroy(), Init() Valid(), When(), Refresh() Valid(), When(), Refresh()

25 Objekt CommandGroup Vlastnosti BorderStyle, SpecialEffect, BorderColor, BorderStyle, SpecialEffect, BorderColor, ButtonCount – počet tlačítek ve skupině, ButtonCount – počet tlačítek ve skupině, Buttons – pole odkazů na jednotlivá tlačítka Buttons – pole odkazů na jednotlivá tlačítka Value – číslo (nadpis) naposledy stisknutého tlačítka Value – číslo (nadpis) naposledy stisknutého tlačítka ControlSource ControlSource InteractiveChange – mějme třitlačítkovou skupinu InteractiveChange – mějme třitlačítkovou skupinu DO CASE CASE This.Value=1 =MESSAGEBOX("Bylo vybráno tlačítko 1") CASE This.Value=2 =MESSAGEBOX("Bylo vybráno tlačítko 2") CASE This.Value=3 =MESSAGEBOX("Bylo vybráno tlačítko 3") Endcase Endcase

26 txtbuttons.navigate DO CASE CASE ATC("TOP",cDirection)#0 LOCATE THIS.TopFile =.T. THIS.EndFile = EOF() CASE ATC("END",cDirection)#0 GO BOTTOM THIS.TopFile =.F. THIS.EndFile =.T. CASE ATC("NEXT",cDirection)#0 IF !EOF() SKIP 1 ENDIF THIS.TopFile = BOF() THIS.EndFile = EOF() CASE ATC("PREV",cDirection)#0 IF !BOF() SKIP -1 ENDIF THIS.TopFile = BOF() THIS.EndFile = EOF() ENDCASE

27 Objekt ComboBox, ListBox Kombinované pole se seznamem - rozbalovací, 1 řádek seznam – rolovací, zabírá více řádků Vlastnosti Style – 0 uživatel vybere hodnotu nebo zapíše hodnotu 2 uživatel má možnost jen vybrat ze seznamu RowSourceType - RowSource 0 - None - naplňujeme seznam za běhu programu (AddItem(), AddListItem()) 1 - Value - čárkami oddělený seznam hodnot 2 - Alias - data z jedné tabulky, pořadí sloupců podle deklarace 3 - SQL SELECT příkaz - když potřebujeme data z více tabulek 4 - query.QPR soubor - -"- 5 - pole, proměnná 6 - Fields – seznam atributů z tabulky 7 - Files - soubory.dbf,.txt 8 - Structure 9 - popup - kvuli zpětné kompatibilitě RowSource - napíšeme seznam položek, u první i alias

28 Objekt ComboBox, ListBox BoundColumn - která položka (z více možných) je v Value BoundTo - ColumnCount - počet zobrazených sloupců Naplnění objektu seznamu pomocí dat z tabulky RowSourceType – 2 Alias RowSourceType – 2 Alias RowSource je název tabulky RowSource je název tabulky ColumnCount=0 nebo 1 – zobrazí se 1. sloupec ColumnCount=0 nebo 1 – zobrazí se 1. sloupec ColumnCount=n > 1 – zobrazí se n sloupců ColumnCount=n > 1 – zobrazí se n sloupců RowSourceType – 6 Fields RowSourceType – 6 Fields RowSource je alias. pol1, pol2, pol3,… RowSource je alias. pol1, pol2, pol3,… ColumnCount=0 nebo 1 – zobrazí se 1. sloupec ColumnCount=0 nebo 1 – zobrazí se 1. sloupec ColumnCount=n > 1 – zobrazí se n sloupců ColumnCount=n > 1 – zobrazí se n sloupců ColumnWidth, ColumnLines, IncrementalSearch ColumnWidth, ColumnLines, IncrementalSearch

29 Objekt ComboBox, ListBox RowSourceType – 3 SQL SELECT RowSourceType – 3 SQL SELECT RowSource je SELECT ….FROM … INTO CURSOR pom RowSource je SELECT ….FROM … INTO CURSOR pom ColumnCount=0 nebo 1 – zobrazí se 1. sloupec ColumnCount=0 nebo 1 – zobrazí se 1. sloupec ColumnCount=n > 1 – zobrazí se n sloupců ColumnCount=n > 1 – zobrazí se n sloupců RowSourceType – 4 QPR RowSourceType – 4 QPR RowSource je jméno souboru.QPR ve kterém je zapsán SQL dotaz RowSource je jméno souboru.QPR ve kterém je zapsán SQL dotaz

30 Objekt Grid - mřížka vypadá jako Browse okno, ale není. Je možné ji naplnit jen daty z tabulek. Vlastnosti RecordSource - alias název tabulky RecordSource - alias název tabulky RecordSourceType RecordSourceType 0 - Table - automaticky se otevře tabulka zadaná v RecordSource 0 - Table - automaticky se otevře tabulka zadaná v RecordSource 1 - Alias - naplní mřížku daty z již otevřené tabulky, kurzorové tabulky nebo pohledu 1 - Alias - naplní mřížku daty z již otevřené tabulky, kurzorové tabulky nebo pohledu 2 - Prompt - spustí dialogový box, který umožní uživateli určit, která tabulka se má použít 2 - Prompt - spustí dialogový box, který umožní uživateli určit, která tabulka se má použít 3 - Query - spustí.QPR soubor zadaný v RecordSource 3 - Query - spustí.QPR soubor zadaný v RecordSource 4 - SQL příkaz 4 - SQL příkaz

31 Objekt Grid - mřížka ColumnCount - standardně -1 - upraví se za běhu programu, aby se do mřížky vešlo tolik polí, kolik je v zadaném zdroji záznamů. Pokud chci např. upravit nadpisy jednotlivých sloupců, změním ColumnCount na patřičné číslo, a můžu změnit jednotlivé nadpisy,... ColumnCount - standardně -1 - upraví se za běhu programu, aby se do mřížky vešlo tolik polí, kolik je v zadaném zdroji záznamů. Pokud chci např. upravit nadpisy jednotlivých sloupců, změním ColumnCount na patřičné číslo, a můžu změnit jednotlivé nadpisy,... Sekvence událostí v mřížce Sekvence v okamžiku, kdy se aktivuje první buňka v mřížce, jakmile se uživatel přepne do mřížky a poté se přesune do následující buňky. Sekvence v okamžiku, kdy se aktivuje první buňka v mřížce, jakmile se uživatel přepne do mřížky a poté se přesune do následující buňky. When obsaženého objektu When obsaženého objektu GotFocus obsaženého objektu GotFocus obsaženého objektu AfterRowColChange - mřížky AfterRowColChange - mřížky Buňka je aktivní Buňka je aktivní BeforeRowColChange mřížky BeforeRowColChange mřížky Valid obsaženého objektu Valid obsaženého objektu LostFocus obsaženého objektu LostFocus obsaženého objektu

32 Hungarian konvence pojmenování (nejen) objektů a (nejen) ve VFP Formát pro jméno objektu Formát pro jméno objektu [předpony]specifikace[vlastní_jméno[přípony]] Předpony con… konstantac … count, počet prvků a… poleh … handle, manip. číslo i … indexyr … parametr odkazem _ … místní v procediře; s … místní v proceduře, statická m … privátní (modulová)(i pro konstanty) g … veřejná (global)(i pro konstanty)

33 Hungarian konvence pojmenování nejen objektů ve VFP Přípony: Přípony: Min … 1. prvek v poli First … akt. prvek v poli Last … akt. posl. prvek v poli Lim … horní hranice počtu prvků v poli Max … abs. poslední prvek v seznamu Cnt … počet prvků

34 Hungarian konvence pojmenování nejen objektů ve VFP Předpony dat. typů c … character cb … char. bin m … memo mb … memo bin o … general (ole objekt) n … numeric f … float b … double i … integer y … currency l … logical t … datetime d … date

35 Hungarian konvence pojmenování nejen objektů ve VFP Specifikace pro objekty projektu chk … CheckBoxfrm … Form cbo … ComboBoxfrs … FormSet cmd … CommandButtongrd … Grid cmg … CommandButtonGroupgrc … GridColumn ctl … controlgrh … GridColumnHeader cnt … Containerimg … Image crs … Cursorlbl … Label ocx … CustomControllin … line dat … DataEnvironmentlst … ListBox edt … EditBoxole … OLE Container …


Stáhnout ppt "Visual FoxPro – formuláře Form Designer, objektové programování."

Podobné prezentace


Reklamy Google