Situatie
Ik ben een VB6 applicatie aan het ontwikkelen. Binnen deze applicatie moet de gebruiker een aantal instellingen kunnen doen, deze instellingen moeten nadat ze zijn toegepast direct door de applicatie gebruikt gaan worden.
Mijn standaard oplossing
Wat ik normaal doe is het maken van een class die de instellingen bijhoud. Per setting maak ik een property aan en bij het initialiseren van de class worden de waarden ingelezen uit een bestand /registry /database. Vervolgens maak ik meestal in een module een public property die door alle code in de applicatie wordt gebruikt om bij de class te komen. Een beetje het idee van een Singleton (als iemand een betere implementatie heeft dan hou ik me aanbevolen.
Het nadeel van deze methode is dat er na het afsluiten van het configuratiescherm moet worden nagelopen welke wijzigingen zijn gedaan en deze doorvoeren binnen de applicatie.
Het probleem
De bovenstaande oplossing is opzich ook wel toe te passen in mijn te bouwen applicatie maar graag zou ik een event willen sturen als een setting veranderd. Hiervoor had ik bedacht een event op te nemen in mijn Settings class die een ID verstuurd van de gewijzigde settings (Enum type) en de nieuwe waarde (Variant). Het event zou dan afgevuurd moeten worden zodra de Property Let /Set routine de nieuwe waarde heeft geaccepteerd. De applicatie zou dan alleen hoeven te reageren op de events en dat leek me wel een handige oplossing.
Het probleem is echter dat ik nu de class niet meer kan verstoppen achter mijn globaal toegankelijke property. Je kunt immers in VB6 alleen events afvangen in een Form of een Class en dus niet in de module die ik hier altijd voor gebruik. Opzich zou ik hier omheen kunnen werken door mijn settings class onder te brengen in het hoofdscherm en door te geven naar het configuratiescherm dat dan vervolgens de instellingen toont en laat bewerken. Alleen dan is het probleem hoe ik bij mijn settings kom vanuit een andere module.
De vraag
Hoe lossen mij mede Tweakers dit op? Op welke manier zorgen jullie dat de instellingen goed worden doorgevoerd door de hele applicatie en op welke manier wordt er voor gezorgd dat de toegang tot de settings goed is geregeld?
Ik ben een VB6 applicatie aan het ontwikkelen. Binnen deze applicatie moet de gebruiker een aantal instellingen kunnen doen, deze instellingen moeten nadat ze zijn toegepast direct door de applicatie gebruikt gaan worden.
Mijn standaard oplossing
Wat ik normaal doe is het maken van een class die de instellingen bijhoud. Per setting maak ik een property aan en bij het initialiseren van de class worden de waarden ingelezen uit een bestand /registry /database. Vervolgens maak ik meestal in een module een public property die door alle code in de applicatie wordt gebruikt om bij de class te komen. Een beetje het idee van een Singleton (als iemand een betere implementatie heeft dan hou ik me aanbevolen.
Het nadeel van deze methode is dat er na het afsluiten van het configuratiescherm moet worden nagelopen welke wijzigingen zijn gedaan en deze doorvoeren binnen de applicatie.
Het probleem
De bovenstaande oplossing is opzich ook wel toe te passen in mijn te bouwen applicatie maar graag zou ik een event willen sturen als een setting veranderd. Hiervoor had ik bedacht een event op te nemen in mijn Settings class die een ID verstuurd van de gewijzigde settings (Enum type) en de nieuwe waarde (Variant). Het event zou dan afgevuurd moeten worden zodra de Property Let /Set routine de nieuwe waarde heeft geaccepteerd. De applicatie zou dan alleen hoeven te reageren op de events en dat leek me wel een handige oplossing.
Het probleem is echter dat ik nu de class niet meer kan verstoppen achter mijn globaal toegankelijke property. Je kunt immers in VB6 alleen events afvangen in een Form of een Class en dus niet in de module die ik hier altijd voor gebruik. Opzich zou ik hier omheen kunnen werken door mijn settings class onder te brengen in het hoofdscherm en door te geven naar het configuratiescherm dat dan vervolgens de instellingen toont en laat bewerken. Alleen dan is het probleem hoe ik bij mijn settings kom vanuit een andere module.
De vraag
Hoe lossen mij mede Tweakers dit op? Op welke manier zorgen jullie dat de instellingen goed worden doorgevoerd door de hele applicatie en op welke manier wordt er voor gezorgd dat de toegang tot de settings goed is geregeld?