1 / 35

Visual FoxPro – formul áře

Visual FoxPro – formul áře. Form Designer, objektové programování. 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í.

floyd
Download Presentation

Visual FoxPro – formul áře

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. 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 OptionGroupCombo box Spinner ImagePageFrame OLE Bound ControlShapeSeparatorButtonLock SelectObjects Label Edit boxCommand Group Check boxList box GridTimerActiveX Control Line Container Hyperlink Builder Lock SelectObjects Label Edit boxCommand Group Check boxList box GridTimerActiveX Control Line Container Hyperlink Builder Lock SelectObjects LabelEdit boxCommand Group Check boxList box GridTimerActiveX 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é

  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 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 - RowSource0 - 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 - Structure9 - 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,… • ColumnCount=0 nebo 1 – zobrazí se 1. sloupec • ColumnCount=n > 1 – zobrazí se n sloupců • 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 • 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 …

More Related