Bewaar gebruikers- en Delphi-applicatiegegevens op de juiste locatie

Wanneer u inhoud met betrekking tot uw Delphi-toepassing op de harde schijf van de gebruiker moet opslaan, moet u zorgen voor de ondersteuning voor het scheiden van gegevens van gebruikersgegevens, gebruikersinstellingen en computerinstellingen.

De map "Application Data" in Windows moet bijvoorbeeld worden gebruikt om applicatiespecifieke documenten op te slaan, zoals INI-bestanden, applicatiestatus, tijdelijke bestanden of iets dergelijks.

Gebruik nooit hard gecodeerde paden naar specifieke locaties, zoals "c: \ Program Files", omdat dit mogelijk niet werkt op andere versies van Windows omdat de locatie van mappen en mappen kan veranderen met verschillende versies van Windows.

De SHGetFolderPath Windows API-functie

De SHGetFolderPath is beschikbaar in de SHFolder eenheid. SHGetFolderPath haalt het volledige pad van een bekende geïdentificeerde map op.

Hier is een aangepaste wrapper-functie rond de SHGetFolderPath API om u te helpen een van de standaardmappen voor alle of de momenteel geregistreerde Windows-gebruiker te krijgen.

Hier is een voorbeeld van het gebruik van de SHGetFolderPath-functie:

  • Zet een TRadioButtonGroup (naam: "RadioGroup1") neer op een formulier
  • Zet een TLabel (naam: "Label1") neer op een formulier
  • Voeg 5 items toe aan de radiogroep:
    • "[Huidige gebruiker] \ Mijn documenten"
    • "Alle gebruikers \ toepassingsgegevens"
    • "[Gebruikersspecifiek] \ Applicatiegegevens"
    • "Program Files"
    • "Alle gebruikers \ documenten"
  • Behandel de OnClick-gebeurtenis van de RadioGroup als:

Opmerking: "[Huidige gebruiker]" is de naam van de momenteel aangemelde Windows-gebruiker.

Opmerking: De SHGetFolderPath is een superset van SHGetSpecialFolderPath.

U moet geen applicatiespecifieke gegevens (zoals tijdelijke bestanden, gebruikersvoorkeuren, applicatieconfiguratiebestanden, enzovoort) opslaan in de map Mijn documenten. Gebruik in plaats daarvan een applicatiespecifiek bestand dat zich in een geldige map Application Data bevindt.

Voeg altijd een submap toe aan het pad dat SHGetFolderPath retourneert. Gebruik de volgende conventie: "\ Application Data \ Company Name \ Product Name \ Product Version".