Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Polnjenje menija tik pred odpiranjem

Polnjenje menija tik pred odpiranjem

Vnosi menija so odvisni od trenutnega zapisa – „Blokiraj“ samo pri aktivnih strankah, zadnji dokumenti stranke –, zato se meni napolni vsakič, ko se odpre.

Zahteva WKL Forms Object Library 1.26 ali novejšo različico.

Pregled rešitve

WklButton sproži DropDown tik preden se njegov meni odpre – s klikom, tipko, ShowMenu ali bralnikom zaslona. Dogodkovna procedura meni počisti (ClearMenu) in doda vnose za trenutni zapis (AddMenuItem, AddMenuSeparator); MenuItemClick sporoči izbiro. Spremembe v pogledu obrazca se ne shranijo z obrazcem.

Izvedba

Private Sub btnDejanja_DropDown()
    Dim rs As DAO.Recordset
    With Me!btnDejanja.Object
        .ClearMenu
        .AddMenuItem "blokiraj", "&Blokiraj", "E72E", Enabled:=Me!Aktivna, Reason:="Stranka je že blokirana."
        .AddMenuItem "posta", "Pošlji &e-pošto", "E715", "Ctrl+M"
        .AddMenuItem "dokumenti", "&Dokumenti"
        Set rs = CurrentDb.OpenRecordset("SELECT TOP 5 DokumentID, Naslov FROM tblDokumenti WHERE StrankaID = " & Me!StrankaID & " ORDER BY Datum DESC")
        Do Until rs.EOF
            .AddMenuItem "doc" & rs!DokumentID, rs!Naslov, Parent:="dokumenti"
            rs.MoveNext
        Loop
        rs.Close
    End With
End Sub
 
Private Sub btnDejanja_MenuItemClick(ByVal Key As String)
    If Key Like "doc*" Then
        DoCmd.OpenForm "frmDokument", WhereCondition:="DokumentID = " & Mid$(Key, 4)
    ElseIf Key = "blokiraj" Then
        Me!Aktivna = False
    End If
End Sub

Opombe

  • Vnos, pod katerim so drugi vnosi („Dokumenti“), odpre svoj podmeni in sam nikoli ni sporočen; če podmeni nima vnosov, je vnos prikazan brez puščice, njegova izbira pa sproži MenuItemClick.
  • Besedilo bližnjice („Ctrl+M“) je samo za prikaz; tipko obravnavajte v Form_KeyDown s KeyPreview.
  • Onemogočen vnos pokaže svoj razlog kot zaslonski namig, ko kazalec miruje na njem.
  • Če je meni po DropDown prazen, se ne odpre.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/fill-a-menu-before-it-opens.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille