WklSplitter in WklDockLayout
Dva kontrolnika, s katerima uporabnik med izvajanjem razporeja območja Accessovega obrazca, brez kode obrazca:
WklDockLayout leži za območji odseka s podrobnostmi in jih ob vsaki spremembi velikosti okna razporedi v cone okoli
območja zapolnitve; WklSplitter je ena sama razdelilna vrstica med dvema skupinama kontrolnikov. Oba si zapomnita
razporeditev vsakega uporabnika in delujeta tudi na obrazcih UserForm v Excelu in Wordu.
Prvi koraki
Pogosta opravila
- Urejanje zapisov ob seznamu (
WklDrawer)
Grafični prikaz
+- frmAdmin ---------------------------------------------------------------+ | Glava obrazca: naslov, iskanje, ukazi | +--------------+-+---------------------------------------------------------+ | tlNav |#| sfMain [3] | | |#| | | [1] |#| | | |#| | | |#+---------------------------------------------------------+ | |#|=========================================================| [2] | |#| sfInfo [4] | +--------------+-+---------------------------------------------------------+ | Noga obrazca: stanje | +--------------------------------------------------------------------------+ +- frmStranka --------------------------------------------+ | lstStranke |#| sfNarocila | | |#| | | [5] |#| [6] | +---------------------------------------------------------+
| Območje | Pomen |
|---|---|
| 1 | Območje, pripeto levo: WklTreeList, podobrazec ali kateri koli kontrolnik (WklDockLayout, cona levo) |
| 2 | Razdelilniki postavitve: z vlečenjem spremenite velikost območja pred njimi, z dvoklikom ali tipko Enter ga strnete |
| 3 | Območje zapolnitve: zavzame prostor, ki ga pripeta območja pustijo prostega |
| 4 | Območje, pripeto spodaj |
| 5 | Prva stran kontrolnika WklSplitter: z razdelilno vrstico se poveča ali zmanjša |
| 6 | Druga stran: z razdelilno vrstico premakne svoj bližnji rob |
Ključne zmožnosti
- Brez kode obrazca: območja se najdejo po položaju na obrazcu (ali po imenu), postavitev sama sledi vsaki velikosti okna, uporabnikova razporeditev pa se vrne ob naslednjem odprtju obrazca.
- Cone kot pri pripenjanju v Windows Forms: levo, zgoraj, desno, spodaj in območje zapolnitve; prej navedeno območje je pripeto bolj zunaj. Vsako pripeto območje ohrani načrtovano širino ali višino in ima najmanjšo velikost.
- Zapolni odsek s podrobnostmi (
FillSection, privzeto): naslov in ukazi v glavi obrazca, stanje v nogi, območja pa v vsem prostoru, ki ga ima okno – ne da bi morali postavitev natančno narisati ali kar koli zasidrati. - Vlečenje, strnjevanje, dogodki: predogled med vlečenjem, ena razporeditev ob sprostitvi, tipka Esc prekliče; dvoklik strne območje ali stran.
BeforeLayoutChangeinBeforeSplitlahko uporabnikovo spremembo spremenita ali prekličeta,AfterLayoutChange,AfterSplitinAfterCollapsepa jo sporočijo. - Razporeditev ostane za vsakega uporabnika sistema Windows (
AutoSaveLayout): v lokalni tabeliUSysWklLayoutpodatkovne zbirke sprednjega dela, na obrazcih UserForm v registru;Layoutvrne razporeditev kot besedilo za kodo, ki jo hrani drugje;Resetvrne načrt. - Skupine zavihkov: več območij si deli eno mesto pod vrstico zavihkov – stranska vrstica s karticama „Eigenschaften“ in „Memo“ –, prikazana je po ena kartica;
AfterTabChangesporoči vsak preklop, ki ga izvede uporabnik, koda ali odpiranje, tako da kartica svojo vsebino naloži na enem mestu. - Tipkovnica in bralniki zaslona: na Accessovih obrazcih se s tipkama F6 in Shift+F6 premikate med območji, tudi skozi postavitev na podobrazcu strani kot del enega kroga; razdelilno vrstico in razdelilnike doseže tabulatorka, s puščičnimi tipkami jim spremenite velikost, s tipko Enter pa jih strnete; UI Automation jih prikaže kot drsnike z velikostjo kot vrednostjo.
- Oblikovalniki s predogledom, izrisanim iz pravih kontrolnikov obrazca; oblikovalnik postavitve s pripenjanjem ob V redu nastavi tudi sidra in vrstni red, določi, kaj prikazuje posamezni podobrazec, in doda nova območja s podobrazci.
Osnovni pojmi
Načrt je izhodišče, razporeditev pa le nekaj številk povrhu. Oba kontrolnika položaje svojih območij prebereta
enkrat, ko se obrazec prvič prikaže, in vsako razporeditev izračunata iz tega načrta: razdelilnik iz enega odmika
(Position) in strnjene strani, postavitev pa iz cone, velikosti in strnjenosti vsakega območja. Odmik 0 ali
Reset je natančno načrt; ponavljajoče se vlečenje ne more kopičiti napak zaokroževanja. Nič od razporeditve med
izvajanjem se ne shrani z obrazcem.
Območja so navadni kontrolniki. Podobrazci, polja s seznamom, kontrolniki WKL – postavitev in razdelilna
vrstica nastavljata njihove položaje in jih skrijeta, ko so strnjeni, nič več. Njihova sidra prepustite
oblikovalniku postavitve: vsakemu območju dodeli vodoravno sidro njegovega mesta, navpično sidro pa pusti zgoraj
(glejte „Okna, širša od 22 palcev“ spodaj). Access zasidrane kontrolnike raztegne, ne da bi o tem obvestil objektni
model, zato postavitev upošteva samo sidra, ki jih dodeli oblikovalnik; območja kontrolnika WklSplitter ostanejo
zasidrana zgoraj levo. Kontrolnik WKL, uporabljen kot območje, med premikanjem obdrži svoje podatke in izbiro, čeprav Access
po vsakem premiku znova zgradi okna kontrolnikov ActiveX.
Kateri kontrolnik kdaj. WklSplitter razdeli dve skupini kontrolnikov vzdolž ene vrzeli, preostali del obrazca
pa pusti pri miru – na primer seznam in podobrazec drug ob drugem. WklDockLayout upravlja odsek s podrobnostmi: primeren
je za lupine in skrbniške obrazce, katerih območja naj izkoristijo celotno okno. Postavitev ima za vsakim pripetim
območjem že razdelilnik; med njena območja ne dodajajte razdelilnih vrstic.
Spremembe uporabnika in spremembe kode. Vlečenje, dvoklik, tipka ali klic UI Automation so uporabnikova
dejanja in sprožijo dogodke Before in After. Ista sprememba s kodo (PaneSize, Position, Collapsed, Layout)
ne sproži nobenega od njih, razen AfterCollapse; obe vrsti sprememb se uporabniku zapomnita.
Pogled načrta prikaže razporeditev. Kadar je vklopljeno Nastavi ob uporabi, V redu v oblikovalniku
postavitve s pripenjanjem premakne območja v pogledu načrta tja, kamor jih postavi postavitev: pripeta območja v
njihovih velikostih ob robovih, med njimi širino razdelilnika, območje zapolnitve v preostanku – izračunano iz
načrtovanega odseka s podrobnostmi (s FillSection) ali iz pravokotnika postavitve. Pogled obrazca se razlikuje samo
tam, kjer se okno razlikuje od načrta: s FillSection območje zapolnitve raste z oknom, uporabnikova lastna
razporeditev (strnjena območja, povlečeni razdelilniki) pa velja samo v pogledu obrazca. Kadar postavitev svoja
območja najde po položaju, razporejeni obrazec pa bi se bral drugače, oblikovalnik najprej izpiše Panes, tako da
cone ostanejo, kot so bile načrtovane.
Samo enojni obrazci. Access ne prikazuje neprekinjenih obrazcev s podobrazci ali kontrolniki ActiveX, zato oba kontrolnika spadata v enojni obrazec okoli takšnih območij.
Okna, širša od 22 palcev. Access zavrne Left in Width nad 31.680 twipov (22 palcev), njegova sidra pa
kontrolnik raztegnejo čez poljubno širino. Postavitev jih uporabi: ko oblikovalnik razporedi območja, vsakemu
dodeli sidro njegovega mesta (območje zapolnitve ter območja nad njim in pod njim so zasidrana levo in desno,
območje na desni je zasidrano desno, območje na levi levo), postavitev pa z njimi zapolni celotno okno. Sidra
nastavite v načrtu, ne s kodo med izvajanjem: ko se sidro kontrolnika podobrazca spremeni v pogledu obrazca, Access
stran ustvari znova (položaj zapisa in vse, kar je bilo nastavljeno med izvajanjem, se izgubi). Območje brez sidra
se konča pri 22 palcih. Višine ostanejo omejene na 22 palcev.
Znotraj strani (obrazca v kontrolniku podobrazca) Access ob spremembi velikosti okna programa Access uporabi
sidra kontrolnikov strani, kot na vsakem obrazcu: v zasidranem kontrolniku podobrazca polje z besedilom, zasidrano
levo in desno, ohrani desni rob iz načrta, tudi nad 22 palci. Širina, nastavljena s kodo (sfPage.Width = …), se
na kontrolnike Access na strani ne uporabi takoj: ti ohranijo velikost, dokler se velikost okna naslednjič ne
spremeni, in šele nato prevzamejo novo širino. Zato kontrolnik podobrazca raje zasidrajte, kot da ga razširite s
kodo; WklDrawer kontrolnike svoje vsebine postavi sam (AnchorContent).
Kontrolnik WKL, zasidran levo in desno na strani, takoj sledi strani, tudi nad 22 palci in brez postavitve s
pripenjanjem; ohrani desni rob iz načrta, njegova lastnost Width pa še vedno vrača vrednost iz načrta.
WklDockLayout na strani in kontrolniki WKL v njegovih območjih prav tako segajo čez 22 palcev, ne da bi bilo
treba poleg razporeditve območij v oblikovalniku kar koli nastaviti. Sidra torej nastavite v načrtu strani, kot na
vsakem obrazcu.
Preverjanje robov v kodi. Kontrolniki WKL ne ponujajo ročice okna (hWnd), Left in Width zasidranega
kontrolnika pa ohranita vrednosti iz načrta, ko ga Access raztegne. V oknu, širšem od obrazca, Access kontrolnik,
zasidran desno, premakne za InsideWidth - Width obrazca, kontrolnik, zasidran levo in desno, pa za enako vrednost
razširi; InsideWidth vrača vidno širino tudi nad 31.680 twipi. Desni rob kontrolnika v oknu je zato
Left + Width + (InsideWidth - Width), pri čemer je v oklepaju Width obrazca. To velja tudi za območja
kontrolnika WklDockLayout: postavitev zasidranemu območju dodeli pravokotnik, ki ga Access s prištetjem rasti
spremeni v razporejenega, zato Left in Width območja vračata ta manjši pravokotnik, ne mesta na zaslonu. Če
želite izvedeti, kje je območje, vprašajte postavitev (PaneZone, PaneSize, PaneCollapsed in GroupPane za
vidno kartico skupine), ne kontrolnika. Palci so logični – slikovne pike okna, deljene s prilagajanjem velikosti v
sistemu Windows, 96 slikovnih pik na palec pri 100 % –, ne diagonala zaslona: povečano okno na 2560 slikovnih
pikah je pri 100 % široko 26,7 palca, pri 125 % pa 21,3 palca; 1920 slikovnih pik pri 100 % je 20 palcev.
Skrbništvo
Odpravljanje težav
Za razvijalce
Sorodne teme
Ni sorodnih tem.