Delphi - Nyelvek listája, és azok adatait elérhetővé tévő komponens

forráskód letöltése
A mellékelt komponens lekérdezi a világ nyelveit egy listába, illetve a megadott nyelv adatait szolgáltatja property-ken keresztül (pl. kód). A komponenshez nem tartozik adatbázis, az adatokat magából az operációs rendszerből kérdezi le.
A mellékelt példaprogram megnyitása előtt a Languages.pas-ban lévő komponenst telepítenie kell a Delphi alá.
A nyelvek listája megtalálható a Registry adatbázisban a „HKEY_CLASSES_ROOT\MIME\DataBase\Rfc1766” kulcs alatt. A kulcs alatt vannak felsorolva a nyelvek úgy, hogy az azonosító neve a nyelv kódja, míg az érték a nyelv megnevezése, illetve egy rövidített név, például a magyar nyelvnél ez a „hu”. Ez a rövid név a nyelv neve előtt áll, és pontosvesszővel van elválasztva tőle.
A nyelv lista a Languages property-ben van, ennek tartalma nem módosítható. A Language property-ben megadható egy nyelv neve. Ha ez megtörténik, akkor a nyelv adatait tartalmazó property-k értéke ennek megfelelően beállítódik. A CodeNum property-ben a nyelv kódja található, míg a CodeStr property-ben ugyanez, de hexadecimális formában. A ShortName a fent említett rövidített név.
procedure TLanguages.Refresh;
const
  REGKEY = 'MIME\DataBase\Rfc1766';
...
  with reg do begin
    RootKey:=HKEY_CLASSES_ROOT;
    if OpenKey(REGKEY, false) then begin
      l:=TStringList.Create;
      reg.GetValueNames(l);
      i:=0;
      while i<l.Count do begin
        s:=reg.ReadString(l[i]);
        FLanguageList.Append(l[i]+'='+s);
        p:=Pos(';', s);
        if p>0 then Delete(s, 1, p);
        FLanguages.Append(s);
        inc(i);
      end;
      CloseKey;
      l.Free;
      FLanguages.Sort;
...