Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Vstavljanje kontrolnikov WKL v obrazce s kodo

Vstavljanje kontrolnikov WKL v obrazce s kodo

Obrazce s kontrolniki WKL ustvarite s skriptom za gradnjo, namesto da bi kontrolnike vstavljali ročno, na primer v aplikaciji, katere obrazci nastajajo samodejno ali se kot besedilo hranijo v sistemu za nadzor različic.

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

Pregled rešitve

  • Ne s CreateControl. CreateControl z acCustomControl ustvari okvir kontrolnika, ne pa objekta ActiveX: Access potrebuje shranjene podatke kontrolnika (OleData), ki jih zapiše samo Access, ko shrani obrazec s kontrolnikom.
  • Z gradnikom kontrolnika. Gradnik kontrolnika je razdelek Begin CustomControl … End obrazca, shranjenega s SaveAsText. Skript za gradnjo ga vstavi v besedilo svojega obrazca in obrazec naloži z LoadFromText; Access kontrolnik ustvari iz podatkov OleData gradnika.
  • Nastavitve v pogledu načrta. Po nalaganju skript odpre obrazec v pogledu načrta in lastnosti kontrolnika nastavi prek .Object (pri WklValidator njegova pravila Rules); Access jih shrani z obrazcem.

Vsak kontrolnik WKL ima izdan gradnik v privzetem stanju (vstavljen prek pogovornega okna Accessa, tako kot ga vstavi razvijalec, in za izdajo shranjen z Accessom), in sicer v mapi control-blocks paketa izdaje (docs/control-blocks v repozitoriju), po eno datoteko za vsak kontrolnik: TreeView, TreeList, Gantt, Grid, Splitter, DockLayout, StatusLabel, NavBar, Button, Validator, ToggleSwitch, TokenBox, Badge, PropertyGrid, ButtonEdit, SpinEdit, Gauge, KpiCard, ActionBar, Drawer, Barcode, Image (<Name>.control.txt). Vsak gradnik je v zgornjem levem kotu svojega razdelka in ima uporabno privzeto velikost; vsak gradnik se ob vsaki izdaji preveri tako, da se naloži v nov obrazec in ta odpre v pogledu obrazca. Orodje za gradnjo nadomestne pravokotnike zamenja s temi gradniki (Gradnja aplikacije Access iz besedilnih izvornih datotek).

Izvedba

  1. Obrazec ustvarite kot običajno (CreateForm, CreateControl za lastne kontrolnike Accessa), ga zaprite z acSaveYes in zapišite kot besedilo: Application.SaveAsText acForm, "frmIdentity", "frmIdentity.form.txt". Datoteka je v UTF-16 (Unicode), kot jo zapiše Access.
  2. Odprite besedilo in poiščite odsek s podrobnostmi: zadnji Begin Section z vrstico imena, na primer Name ="Detail" (ime je odvisno od jezika Accessa). Njegovi kontrolniki so v bloku Begin … End znotraj razdelka. Vrstice gradnika vstavite pred ta notranji End, zamaknjene tako kot drugi kontrolniki. Razdelek brez kontrolnikov nima notranjega bloka Begin … End: pred lastni End razdelka vstavite Begin, gradnik in End.
  3. V gradniku spremenite Name ="Validator1" v ime kontrolnika v obrazcu in za njegov položaj dodajte vrstici Left =… in Top =… (v twipih); gradnik ju nima, ker Access vrednosti 0 izpusti. Width in Height sta že v gradniku.
  4. Besedilo zapišite nazaj v UTF-16, izbrišite obrazec (DoCmd.DeleteObject acForm, "frmIdentity") in ga naložite: Application.LoadFromText acForm, "frmIdentity", "frmIdentity.form.txt".
  5. Lastnosti nastavite v pogledu načrta:
DoCmd.OpenForm "frmIdentity", acDesign
Forms!frmIdentity.HasModule = True          ' the validator needs a module; an empty one is enough
Forms!frmIdentity!Validator1.Object.Rules = "{""fields"":[{""field"":""Login"",""required"":true}]}"
DoCmd.Close acForm, "frmIdentity", acSaveYes

Opombe

  • En gradnik za vsako vrsto kontrolnika. Gradnik vsebuje razred kontrolnika (Class ="WklForms.…") in njegove shranjene lastnosti v privzetem stanju. Uporabite gradnike izdaje, s katero delate: gradnik starejše izdaje se naloži tudi v novejšo (nastavitve, ki mu manjkajo, dobijo privzete vrednosti).
  • Imena. Dva kontrolnika na istem obrazcu ne smeta imeti enakega imena; Name spremenite pred nalaganjem.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/insert-controls-by-code.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille