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

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

Visual FoxPro – formuláře

Podobné prezentace


Prezentace na téma: "Visual FoxPro – formuláře"— Transkript prezentace:

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

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

3 Typy objektů vkládaných do formulářů
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 SelectObjects Label Edit box Command Group Check box List box Grid Timer ActiveX Control Line Container Hyperlink Builder Lock 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)
jedno hlavní okno, ostatní jsou potomci hl. okna (VFP) Single-document interface (SDI) jedno nebo více nezávislých oken (pošta – 1 mail – 1 nezávislé okno) Typy formulářů Top level form – nezávislé okno Child form – v rodič. okně, nelze přetáhnout vně 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 Grid Columns Option button group Option buttons Page frame Pages Page Grids, any controls

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

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

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

9 Příkazy pro práci s formuláři
MODIFY FORM [FormName | ?][NOWAIT] [METHOD MethodName] [NOENVIRONMENT][SAVE] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] Z menu 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] spuštění formuláře FormName NAME VarName - jméno formuláře pro přístup do něj, pokud nezadáme, bude FormName WITH cParameterList – vstupní argumenty do form. TO VarName – výstupní proměnná nebo pole z formuláře NOREAD – pro zpětnou kompatibilitu NOSHOW – neproběhne show() metoda formuláře

11 Předávání parametrů do/z formuláře
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). 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).

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

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

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

15 Sekvence událostí při spuštění formuláře
Formulář se načte (zavede) Form.DataEnvironment.BeforeOpenTables Form.Load Vytvoří se všechny objekty, které formulář obsahuje Form.DataEnvironment.Cursor.Init Form.DataEnvironment.Init Form.Text1.Init Form.Init Formulář se aktivuje Form.Activate Dojde k události When prvního ovládacího prvku Form.Text1.When Formulář "získá fokus„ - stane se aktivním Form.GotFokus 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.QueryUnload Form.Destroy Form.Text1.Destroy Form.Text2.Destroy Form.Unload Form.DataEnvironment.AfterCloseTable Form.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
MinButton, MaxButton – lze minimalizovat, maximal. 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(), 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 WindowType = 1 modální formulář , Show(1) WindowType = 0 nemodální formulář, Show(2) DataSession – Default DataSession, Private DataSession BufferMode - 1 pesimistické, 2 optimistické TableUpdate(), TableRevert()

20 Vlastnosti DataEnvironmentu
AutoCloseTables, AutoOpenTables, InitialSelectedAlias Události BeforeOpenTables, AfterCloseTables Metody CloseTables(), OpenTables() Vlastnosti kurzorové tabulky Alias, BufferModeOverride (0-5), CursorSource, Database, Exclusive, Filter, NoDataOnLoad, Order, ReadOnly Vlastnosti objektu relace 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 Caption – „nadpis“ objektu WordWrap – automatické zalomení, AutoSize Alignment, BackColor, ZOrder BackStyle 1-Opaque - viditelný celý titulek Systémové události Init(), Destroy(), Error(), UIEnable()

22 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 Objekt TextBox, EditBox
Události InteractiveChange ProgrammaticChange Valid, When, GotFocus, LostFocus KeyPress RangeHigh, RangeLow

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

25 Objekt CommandGroup Vlastnosti
BorderStyle, SpecialEffect, BorderColor, ButtonCount – počet tlačítek ve skupině, Buttons – pole odkazů na jednotlivá tlačítka Value – číslo (nadpis) naposledy stisknutého tlačítka ControlSource 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

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 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 - -" 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 RowSource je název tabulky ColumnCount=0 nebo 1 – zobrazí se 1. sloupec ColumnCount=n > 1 – zobrazí se n sloupců RowSourceType – 6 Fields RowSource je alias. pol1, pol2, pol3,… ColumnWidth, ColumnLines, IncrementalSearch

29 Objekt ComboBox, ListBox
RowSourceType – 3 SQL SELECT RowSource je SELECT ….FROM … INTO CURSOR pom ColumnCount=0 nebo 1 – zobrazí se 1. sloupec ColumnCount=n > 1 – zobrazí se n sloupců RowSourceType – 4 QPR 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 RecordSourceType 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 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 4 - SQL příkaz

31 Objekt Grid - mřížka Sekvence událostí v mřížce
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. When obsaženého objektu GotFocus obsaženého objektu AfterRowColChange - mřížky Buňka je aktivní BeforeRowColChange mřížky Valid 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 [předpony]specifikace[vlastní_jméno[přípony]] Předpony con… konstanta c … count, počet prvků a… pole h … handle, manip. číslo i … indexy r … 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: 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 … CheckBox frm … Form cbo … ComboBox frs … FormSet cmd … CommandButton grd … Grid cmg … CommandButtonGroup grc … GridColumn ctl … control grh … GridColumnHeader cnt … Container img … Image crs … Cursor lbl … Label ocx … CustomControl lin … line dat … DataEnvironment lst … ListBox edt … EditBox ole … OLE Container


Stáhnout ppt "Visual FoxPro – formuláře"

Podobné prezentace


Reklamy Google