IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Création dynamique des lignes d'un PopupMenu


Sujet :

Langage Delphi

  1. #1
    Membre du Club Avatar de bionicleman
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 66
    Points
    66
    Par défaut Création dynamique des lignes d'un PopupMenu
    Bonsoir,

    je vais être bref, je voudrais créé dynamiquement toutes les lignes d'un popup menu à partir d'un fichier INI dont je connais la location.

    Merci.
    [Je suis assez pressé doù ma description courte, si vous voulez plus d'infos, je repasserais dans la soirée. Merci encore =)]
    La source de la majorité des bugs sur Windows se situe entre le clavier et la chaise...

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Je te donne un code pour charger et créer un item à partir d'un fichier ini ... Mais un truc me dérange, c'est que si tu as beaucoup de valeurs, tu vas devoir toutes te les taper à la main ... à moins de lire le fichier ini comme fichier de texte simple ... enfin bref, je te propose ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    var
      Form1: TForm1;
      MonItem:TMenuItem;
     
    implementation
     
    {$R *.dfm}
     
    procedure AjouterUnItem(PopupMenu:TPopupMenu;FichierIniACharger,Section,Cle,default:String);
    var
    FichierINI:TIniFile;
    begin
      FichierINI:=TIniFile.Create(FichierIniACharger);
      MonItem:=TMenuItem.Create(PopupMenu);
      MonItem.Caption:=FichierINI.ReadString(Section,Cle,default);
      PopupMenu.Items.Add(MonItem);
      FichierINI.Free;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      AjouterUnItem(PopupMenu1,'C:\tr\MonFichierIni.ini','UnTruc','UnBidule','');
    end;
    Ca permet de charger un entier de type String. Il ne faut pas oublier de rajouter dans les uses l'unité IniFiles ...

    Je ne sais pas si ça correspond à ton soucis ...
    A+

    J'ai peut être pas codé ça de façon propre

  3. #3
    Membre du Club Avatar de bionicleman
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    Merci de ta réponse, ça m'a l'air d'être ça, je continue et si jamais j'ai un autre soucis je sais où m'adresser... après m'être tuer a chercher sur www.google.fr

    Encore merci et a+


    [Edit]
    Re, [eh wi j'ai un soucis ]
    Lorsque j'ajoute l'item, il s'ajoute mais pas au bon endroit :
    Quand je le popupmenu s'affiche j'ai 3 items dont 2 qui contiennent des sous menus.
    Je voudrais que l'item précédement ajouté s'affiche dans un de ces sous menus.
    Comment pourrais-je faire ?
    Merci d'avance.
    [/Edit]
    La source de la majorité des bugs sur Windows se situe entre le clavier et la chaise...

  4. #4
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    SAlut
    Probleme deja posé mainte fois
    Ici par exemple, avec un chouette code de Troll

    Google et ton ami
    Le bouton recherche aussi (a lire en rithme ca rime )

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    J'ai repris ma procédure pour la faire pour les sous menu ... C'est peut-être pas top comme façon de faire, mais au moins, tu vois le principe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    var
      Form1: TForm1;
      MonItem:TMenuItem;
     
    implementation
     
    {$R *.dfm}
     
    procedure AjouterUnItem(PopupMenu:TPopupMenu;FichierIniACharger,Section,Cle,default:String);
    var
    FichierINI:TIniFile;
    begin
      FichierINI:=TIniFile.Create(FichierIniACharger);
      MonItem:=TMenuItem.Create(PopupMenu);
      MonItem.Caption:=FichierINI.ReadString(Section,Cle,default);
      PopupMenu.Items.Add(MonItem);
      FichierINI.Free;
    end;
     
    procedure AjouterUnSousItem(ItemPrincipal:TMenuItem;FichierIniACharger,Section,Cle,default:String);
    var
    FichierINI:TIniFile;
    begin
      FichierINI:=TIniFile.Create(FichierIniACharger);
      MonItem:=TMenuItem.Create(ItemPrincipal);
      MonItem.Caption:=FichierINI.ReadString(Section,Cle,default);
      ItemPrincipal.Add(MonItem);
      FichierINI.Free;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      AjouterUnItem(PopupMenu1,'C:\tr\MonFichierIni.ini','UnTruc','UnBidule','');
      AjouterUnSousItem(PopupMenu1.Items[0],'C:\tr\MonFichierIni.ini','UnTruc','UnBidule','');
    end;
    Donc en fait, le premier Item est l'Item 0 et donc on lui rajoute un Item

  6. #6
    Membre du Club Avatar de bionicleman
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 66
    Points
    66
    Par défaut
    Bonjour a tous,
    Voilà mon code est prêt =)
    Merci pour votre aide.
    J'ai créé une nouvelle form sur laquelle j'ai mis un DirectoryListBox et un bouton qui ajoute un nouvel objet;
    Je met mon code en ligne pour aider les futurs galériens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    unit Unit5;
     
    interface
     
    uses
    [...] Menus, Inifiles, FileCtrl;
     
    [...]
     
    var
      Form5: TForm5;
      MenuItem: TMenuItem;
      DelphiINI:TIniFile;
     
    implementation
     
    {$R *.dfm}
     
    procedure AjouterUnItem(PopupMenu:TMenuItem;FichierIniACharger,Section,Cle,default:String);
    begin
      nomitem:=form5.edit1.Text;
      MenuItem:=TMenuItem.Create(PopupMenu);
      MenuItem.Caption:=Form5.edit1.text;
      PopupMenu.Add(MenuItem);
    end;
     
    procedure TForm5.BitBtn1Click(Sender: TObject);
    begin
      diritem:=DirectoryListBox1.directory;
      AjouterUnItem(Form2.PopupMenu1.Items[1],'F:\Documents de r3\Divers\Programmes\Dossiers\Lanceur\Menu.ini','Objets',nomitem,diritem);
      delphiini:=TIniFile.Create('F:\Documents de r3\Divers\Programmes\Dossiers\Lanceur\Menu.ini');
      DelphiIni.WriteString('Item', nomitem, diritem);
      delphiini.free;
    With TMenuItem.Create(Self) Do
    Begin
      OnClick := Form2.obj_ajoute1;
    End;
      form5.close;
    end;
     
    procedure TForm5.DirectoryListBox1Change(Sender: TObject);
    begin
      edit1.Text:=label4.Caption;
    end;
     
    procedure TForm5.DirectoryListBox1Click(Sender: TObject);
    begin
      Directorylistbox1.opencurrent;
    end;
    Voili Voilà Voilou Bonne journée à tous
    La source de la majorité des bugs sur Windows se situe entre le clavier et la chaise...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Mise à jour dynamique des lignes d'un tableau
    Par woodyfrance dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/02/2008, 11h50
  2. Réponses: 5
    Dernier message: 25/09/2007, 17h06
  3. Ajouter dynamiquement des lignes à un tableau HTML
    Par jeannot1974 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 20/11/2006, 15h39
  4. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo