• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

getesstings probleempje

Status
Niet open voor verdere reacties.

glda19

Terugkerende gebruiker
Lid geworden
14 jan 2008
Berichten
1.064
hi
wat er zou moeten geburen is het volgende staat er niks in het register dan zou bRodelijnWeerGevenAanUit standaard true moeten krijgen.
Dit gebeurt ook in de sub maar de code public bRodelijnWeerGevenAanUit krijgt de waarde true niet !!
Bij een true komen er dikke rode lijnen om de 4 weken op de kalender ander volledig dunne zwarte

Verander ik de ByRef bRodelijnWeerGevenAanUit naar byref returnedVal
en dan haar zet ik dan bRodelijnWeerGevenAanUit = getsettings in comentaar
deze 'returnedVal= GetSetting uit comentaar
en dan bRodelijnWeerGevenAanUit = returnedVal
Dan krijgt public bRodelijnWeerGevenAanUit wel true
Code:
Public bRodelijnWeerGevenAanUit As Boolean

Sub cbRodeLijnWeergevenAanUit_getPressed(control As IRibbonControl, ByRef bRodelijnWeerGevenAanUit)
'Callback for checkBox getPressed
'De toestand van de checkbox RodeLijnWeergevenAanUit uitlezen uit het register.
'Plaats in het regeister Computer\HKEY_CURRENT_USER\Software\VB and VBA Program Settings
bRodelijnWeerGevenAanUit = GetSetting("Afwezigheidskalender", "checkboxstate", "RodelijnWeergevenAanUit", True) ' true=default value als er niks in het register staat

'returnedVal= GetSetting("Afwezigheidskalender", "checkboxstate", "RodelijnWeergevenAanUit", True) ' true=default value als er niks in het register staat
'bRodelijnWeerGevenAanUit = returnedVal
    Call WeekLijnTrekken
'Is bRodelijnWeerGevenAanUit ="" ' Betekend dat de RodelijnWeergevenAanuit zich niet in het register bevind.

End Sub
 

Bijlagen

Laatst bewerkt:
is aangepast was te vroeg gepost
 
Laatst bewerkt:
Ik zie nergens dat je een InvalidateControl van die CheckBox doet.
Dan wordt de _GetPressed die je in #1 laat zien dus niet uitgevoerd, alleen de _OnAction
 
hoe moet ik dan die InvalidateControl toepassen
zet eens een onderbrekingspunt bij dit
Code:
Sub cbRodeLijnWeergevenAanUit_getPressed(control As IRibbonControl, ByRef bRodelijnWeerGevenAanUit)
Saven afsluiten en herstarten en kijk dan waar het stop. Wel bij bovenstaande regel.
Dus zou ik niet weten waarom die public bRodelijnWeerGevenAanUit de true niet krijgt
 
Laatst bewerkt:
Ligt eraan wat je precies wilt.
Ik denk in de GetEnabled sectie.
 
weet niet of je het probleem goed verstaat. De rode lijnen zouden standaard zichtbaar moeten zijn als geen waarde voor de ceckbox in het register staat
 
Zet dan dit in de GetEnabled er bij:
Code:
If GetSetting("Afwezigheidskalender", "checkboxstate", "RodelijnWeergevenAanUit", "") = "" Then
    bRodelijnWeerGevenAanUit = True
    Call WeekLijnTrekken
Else
    bRodelijnWeerGevenAanUit = GetSetting("Afwezigheidskalender", "checkboxstate", "RodelijnWeergevenAanUit", "")
End If
 
Laatst bewerkt:
er staat wel geen waarde voor de checkboxstate in het register dus gaat direkt naar de els
Als de gebruiker het vinkje van de checkboxs uit vinkt. En hij dan terug op start moet de toestand zijn zoals hij hem heeft achter gelaten en dus mag mogen die rodelijnen er niet op komen.
 
Laatst bewerkt:
Werkt hier prima in je eigen document.
 
hier niet in excel versie 2019
en heb het onder de bestaande code gezet in GetEnabled
gaat naar de else
 
Die Excel heb ik ook..
En wat ik al zei, doet het hier prima.
Als er er nog geen register instelling voor is worden de rode lijnen zichtbaar en is de CheckBox aangevinkt.
 
thx
weet niet wat het was maar werkte nu ook in mijn versie. Is dit de juiste werkwijze.
Zou ik dat altijd bij getenabled moeten doen alle statussen opvragen. voor elke knop die ik wil bewaren
 
Controleer in ieder geval bij de GetEnabled op het actieve Control.
Anders wordt de volledige code ervan voor iedere Control uitgevoerd.

Dat kan je doen met:
Select Case Control.id

De id van de control is de naam die je er in CustomUI aan hebt gegeven.
En ja, je zal per Control die verschillende statussen kan hebben deze moeten opvragen.
 
het probleem ligt aan de varibale volgens een vriend.
Public en global
 
Public en Global variabelen zijn hetzelfde in VBA.

Zojuist ook even je CustomUI bekeken.
Daarin wordt de GetEnabled helemaal niet gebruikt voor die CheckBox.

PHP:
<checkBox 
    id="RodeLijnWeergevenAanUit"
    label="Rodelijn Weergeven aan uit"
    getPressed="cbRodeLijnWeergevenAanUit_getPressed"
    onAction="cbRodeLijnWeergevenAanUit_onAction"/>

De code wordt dus uitgevoerd door de CallBack van de Button BtnNieuwJaarToevoegen.
 
waarom een getenabeld gaan gebruiken. Enalbled is toch enkel maar om de knop grijs of niet grijs te zetten
 
Dat is 1 van de redenen.
Daarnaast wil je code uitvoeren voor die knop tijdens het openen van het document.
Dat kan je dan doen in de GetEnabled.
 
waarom een getenabeld gaan gebruiken. Enalbled is toch enkel maar om de knop grijs of niet grijs te zetten
heeft te maken dat ik in de getpress van checkbox byref bRodelijnWeerGevenAanUit en ook bij public dus de locale veriable neemt het over.
Code:
Sub cbRodeLijnWeergevenAanUit_getPressed(control As IRibbonControl, ByRef reterndedValue)
'Callback for checkBox getPressed
'De toestand van de checkbox RodeLijnWeergevenAanUit uitlezen uit het register.
'Plaats in het regeister Computer\HKEY_CURRENT_USER\Software\VB and VBA Program Settings
bRodelijnWeerGevenAanUit = GetSetting("Afwezigheidskalender", "checkboxstate", "RodelijnWeergevenAanUit", True) ' true=default value als er niks in het register staat
returnedVal =bRodelijnWeerGevenAanUit 
    Call WeekLijnTrekken
'Is bRodelijnWeerGevenAanUit ="" ' Betekend dat de RodelijnWeergevenAanuit zich niet in het register bevind.

End Sub
of is dat wat jij schreef bij getenabled beter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan