Je souhaite lire le contenu d'un fichier ini pour créer des sous-menus déroulants.
J'envisagais de stocker la valeur de chaque clé (un chemin vers un dossier) dans chaque menuItem.Tag mais apparemment le Tag n'accepte que des valeurs numériques.
Comment feriez vous pour associer chaque clé à sa valeur dans chaque sous-menu ?
- Quelle méthode utiliseriez vous ? 2 valeurs TStrings différentes (mais comment associer le premier sous-menu à la première valeur de clé, etc. ?) ou 'ReadSectionValues' qui renvoie 'clef=valeur' dans une chaine unique puis la parser a partir du signe '=' ?
- Peut on associer un pointeur (vers une string) a chaque sous menu comme dans les TLisItem pour y stocker chaque Chemin ?
Ce code fonctionne mais la ligne NewItem.Tag est refusée :
FileIni:=IniFile.Create(ExtractFilePath(Application.ExeName)+'\conf.ini');
Keys := TStringList.Create;
// Lit tous les noms de clés de la section spécifiée :
FileIni.ReadSection('Shortcut', Keys);
for I := 0 to Keys.Count - 1 do //boucle des clés
begin
NewItem := TMenuItem.Create(Self); {Créer une nouvelle instance de sous-menu}
NewItem.Caption := Keys.Strings[i]; //nom des sous-menus
// NewItem.Tag := FileIni.ReadString('Shortcut', Keys[i], 'No Value'); //Affiche les valeurs de chaque clé dans le tag
MainMenu1.Items.Items[2].Add(NewItem);
...
D'avance merci,
Daniel
Partager