The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.
Je kunt natuurlijk de basisclass voor het schrijven naar en het lezen van de ini maken waarbij je vervolgens voor elke applicatie een nieuwe settings class maakt die de eerste class inherit. Dan heb je de read/write code nog maar op 1 plek staan en heb je toch alleen de nodige properties in je settings class voor je applicatie.
C'est le ton qui fait la musique. | Blog | @linkedin
R8 | 18-55 IS | 50mm 1.8 2 | 70-200 2.8 APO EX HSM | 85 1.8
Verwijderd
Ik zou hier niet allerlei globale variabelen voor gaan declareren, maar 1 TStringList(-afgeleide).
Via TIniFile.ReadSections vul je die met de sections van je inifile, vervolgens hang je aan iedere section een nieuwe TStringList die je met TIniFile.ReadSection vult met de key/value pairs van die section.
Daarna implementeer je een paar methods als GetValue(const ASection, AKey: string), SetValue(const ASection, AKey: string), en een UpdateIniFile routine.
Binnen de applicaties/plugins zelf kun je dan de settings voor die app wel cachen en omzetten naar het juiste type (wanneer je weet dat een setting een integer is, wil je niet steeds StrToIntDef gebruiken), maar dat blijft dan netjes app/plugin specifiek.
Via TIniFile.ReadSections vul je die met de sections van je inifile, vervolgens hang je aan iedere section een nieuwe TStringList die je met TIniFile.ReadSection vult met de key/value pairs van die section.
Daarna implementeer je een paar methods als GetValue(const ASection, AKey: string), SetValue(const ASection, AKey: string), en een UpdateIniFile routine.
Binnen de applicaties/plugins zelf kun je dan de settings voor die app wel cachen en omzetten naar het juiste type (wanneer je weet dat een setting een integer is, wil je niet steeds StrToIntDef gebruiken), maar dat blijft dan netjes app/plugin specifiek.
De methode van Afterlife klinkt wel logisch. Vooral het cachen moeten we dan even goed over nadenken, want een groot deel van de variabelen gaat in een aantal algorithmes gebruikt worden.
We hebben wel min of meer besloten een soort master ini file te maken waarin alle voorkomende variabelen opgeslagen worden. Per applicatie kan daar eventueel een kopie van worden gemaakt met alleen de benodigde settings.
We hebben wel min of meer besloten een soort master ini file te maken waarin alle voorkomende variabelen opgeslagen worden. Per applicatie kan daar eventueel een kopie van worden gemaakt met alleen de benodigde settings.
The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.
Verwijderd
Mocht je bij je master ini file overigens tegen de 64K grens voor ini files onder Windows aanlopen, kijk dan 's naar de inifiles unit van FreePascal (te vinden in de fcl.source.zip library. Deze kan theoretisch ini files van 2GB aan, maar in de praktijk is 't vooral afhankelijk van je hoeveelheid RAM (de ini file wordt in memory gehouden).
Die unit is 100% Delphi compatible, sterker nog: ik heb 'm toen in Delphi 5 ontwikkeld.
Wel geinig trouwens dat die unit na 7 jaar nog steeds vrijwel ongewijzigd deel uitmaakt van de FreePascal FCL.
Die unit is 100% Delphi compatible, sterker nog: ik heb 'm toen in Delphi 5 ontwikkeld.
Wel geinig trouwens dat die unit na 7 jaar nog steeds vrijwel ongewijzigd deel uitmaakt van de FreePascal FCL.
Als 't werkt: niet aankomen
The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.
Pagina: 1