Določitev enake glave za vse strani
Lupini aplikacije dajte eno glavo za vse njene strani – naslov, podnaslov, ukaze strani in stanje – namesto gumbov in oznak, ki jih vsaka stran ali lupina postavlja in meri sama.
Zahteva WKL Forms Object Library 1.46 ali novejšo različico.
Pregled rešitve
- En
WklActionBarv lupini, nad podobrazcem, ki prikazuje strani (sfPage). - Lupina nastavi ukaze strani, ko prikaže stran: eno besedilo JSON za vsako stran ali
ClearCommandsinAddCommand. - Ena dogodkovna procedura izvede vsak ukaz:
CommandClick(Key)ključ preda proceduri, ki ve, kaj naredi posamezen ključ. - Stanje zapisa ukaze po ključu omogoči in onemogoči, na primer po dogodku
CommandStateChangeseznama.
Izvedba
V modulu obrazca lupine frmShell (vrstica barShell, podobrazec strani sfPage):
Option Compare Database
Option Explicit
Public Sub ShowPage(ByVal pageForm As String)
Me!sfPage.SourceObject = pageForm
With Me!barShell.Object
.Caption = Me!sfPage.Form.Caption
.Subtitle = Nz(Me!sfPage.Form.Tag, "")
.ClearCommands
Select Case pageForm
Case "frmOsebe"
.AddCommand "nov", "&Nov", "E710", wcpStandard, "^N"
.AddCommand "uredi", "&Uredi", "E70F"
.AddCommand "izbrisi", "&Izbriši", "E74D"
.AddCommand "izdaj", "Izdaj &ključ ...", "E8D7", wcpPrimary
.AddCommand "izdaj-test", "Izdaj &preskusni ključ ...", "", , , "izdaj"
.AddCommand "preklici", "P&rekliči ključ ...", "", wcpMenu
.AddCommand "stolpci", "Ponastavi &stolpce", "", wcpMenu, , , , True
End Select
.AddCommand "export", "Iz&vozi ...", "EDE1", wcpRight
.AddCommand "refresh", "&Osveži", "E72C", wcpRight, "{F5}"
End With
End Sub
Private Sub barShell_CommandClick(ByVal Key As String)
Select Case Key
Case "nov": Me!sfPage.Form!grdList.Object.NewRecord
Case "uredi": Me!sfPage.Form!grdList.Object.EditSelected
Case "izbrisi": Me!sfPage.Form!grdList.Object.DeleteSelected
Case "refresh": Me!sfPage.Form!grdList.Object.Requery
Case "export": Me!sfPage.Form!grdList.Object.ShowExportDialog
Case Else: RunPageCommand Key
End Select
End Sub
' Called by the page after its list changed what can be done (CommandStateChange of WklGrid).
Public Sub ListStateChanged(ByVal grid As Object)
With Me!barShell.Object
.CommandEnabled("nov") = grid.CanAdd
.CommandEnabled("uredi") = grid.CanEdit
.CommandEnabled("izbrisi") = grid.CanDelete
End With
End Sub
Private Sub RunPageCommand(ByVal Key As String)
' The commands only this page has, for example opening a dialog.
End Sub
Opombe
- Lupina, ki za vsako stran hrani en nabor, lahko vsakega shrani kot besedilo JSON in ga dodeli z
.Commands = text; besedilo z napako je zavrnjeno v celoti, vrstica pa obdrži svoje ukaze. - Oznaka stanja pokaže, kaj počne celotna aplikacija, na primer
.StatusText = "osveženo " & Format(Now, "hh:nn:ss")z.StatusKind = wskOk. - Vsako bližnjico navedite enkrat: v vrstici (
Shortcutukaza) ali vWklDockLayout.ShortcutKeys, ne na obeh mestih. - Pas vrstice sprejme
BackColorinForeColor; vrstica z ukazi obdrži barvo okna, zato gumbi ostanejo berljivi tudi na temnem pasu. - Ukazi, nastavljeni s kodo v pogledu obrazca, obrazca ne označijo kot spremenjenega; ukazi, nastavljeni v pogledu načrta (s kodo ali v oblikovalniku), se shranijo z obrazcem.
Sorodne teme
sl/wiki/msaccess/comctl/how-to/give-every-page-the-same-header.txt · Last modified: by Wolfgang van der Stille