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

Composants VCL Delphi Discussion :

Lignes de menu inactive


Sujet :

Composants VCL Delphi

  1. #1
    dhp
    dhp est déconnecté
    Candidat au Club
    Inscrit en
    Février 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Lignes de menu inactive
    Voici la source que j'utilise pour lire les sections d'un fichier Ini et ajouter leurs noms dans le menu appelé Matriel1.
    Ceci marche très bien mais les lignes ajoutées au menu n'ont aucune action concrètes.
    Comment affecter à chacune de ces lignes l'ouverture d'une fiche en l'occurrence dans mon appli: Form2.

    procedure TForm1.FormCreate(Sender: TObject);
    var
    config: Tinifile;
    NewItem: TmenuItem;
    x: Integer;
    begin
    Config := TIniFile.Create('Sport.INI');
    Config.ReadSections(combobox1.items);
    Config.free;
    for x := 0 to combobox1.items.count -1 do
    begin
    NewItem:=Tmenuitem.create(self);
    combobox1.text:= combobox1.items[x];
    newitem.Caption := combobox1.text;
    Matriel1.Add(NewItem);
    end;
    end;

    J'ai passé moultes pages de ce Forum et je n'y ai rien trouvé de concluant

  2. #2
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 105
    Points
    105
    Par défaut
    As-tu consulté l'aide en ligne ?

    Il faut affecter une valeur à la propriété NewItem.OnClick, en l'occurence l'ouverture de ta form.

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 66
    Points : 129
    Points
    129
    Par défaut
    Voilà du code explicatif :
    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
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        ComboBox1: TComboBox;
        Matriel1: TMainMenu;    // si j'ai bien compris ton cas ...
        procedure Button1Click(Sender: TObject);
        procedure OnMenuItemClick(Sender: TObject);
      private
    ...
    implementation
    uses inifiles;
    ...
    procedure Tform1.OnMenuItemClick(Sender: TObject);
    var mnu : TMenuitem;
    begin  // exemple : affectation même gestionnaire à tous menuitems...
     mnu := sender as TMenuitem;
     showmessage('Menu cliqué = '+ mnu.caption);
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
    config: Tinifile;
    NewItem, ParentMenu : TmenuItem;
    x: Integer;
    begin
      Config := TIniFile.Create('sport.ini');
      Config.ReadSections(combobox1.items);
      Config.free;
     
    // si on veut les items dans un menu de base 'fichier' ...
      if Matriel1.Items.Count = 0 then
      begin
        ParentMenu := TMenuItem.Create(self);
        ParentMenu.Name := 'MnuFichier';
        ParentMenu.Caption := 'Fichier';
        Matriel1.Items.Add(ParentMenu);
      end;
     
      for x := 0 to combobox1.items.count -1 do
      begin
        NewItem:=Tmenuitem.create(self);
        NewItem.Caption := combobox1.Items[x];
        NewItem.OnClick := OnMenuItemClick;
        NewItem.Tag := x;   // utile quelquefois
        Newitem.Name := 'SousMenu'+inttostr(x);
      //  Matriel1.Items.add(NewItem);  <--- si  plusieurs menus de base 
        ParentMenu.Add(NewItem);   // <--- ou si tous dans 1 menu 'fichier'
      end;
    end;
    A+

  4. #4
    dhp
    dhp est déconnecté
    Candidat au Club
    Inscrit en
    Février 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème résolu
    Après une 2 heures d'essai, voici le code complet de la fonction que je cherchais et ça marche.

    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
     
    procedure Tform1.OnMenuItemClick(Sender: TObject);
    var mnu : TMenuitem;
    begin  // exemple : affectation même gestionnaire à tous menuitems...
    mnu := sender as TMenuitem;
    Form2.show;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
    config: Tinifile;
    NewItem: TmenuItem;
    x: Integer;
    begin
    Config := TIniFile.Create('Sport.INI');
    Config.ReadSections(combobox1.items);
    Config.free;
    for x := 0 to combobox1.items.count -1 do
    begin
    NewItem:=Tmenuitem.create(self);
    combobox1.text:= combobox1.items[x];
    newitem.Caption := combobox1.text;
    Matriel1.Add(NewItem);
    NewItem.OnClick := OnMenuItemClick;
    end;
    end;
    Plus court et plus compréhensible pour moi maintenant que j'ai trouvé.
    Reste à sortir les données de Sport.Ini en fonction du newitem.caption sélectionné.

    Merci pour m'avoir mis sur la voie!!!!

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

Discussions similaires

  1. Griser une ligne de menu
    Par Trounk dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/06/2009, 14h57
  2. Réponses: 2
    Dernier message: 05/06/2009, 11h59
  3. Ligne de menu disparue
    Par divan dans le forum Access
    Réponses: 7
    Dernier message: 16/03/2008, 15h48
  4. ajouter une ligne à un menu
    Par Rodrick dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/10/2006, 20h40
  5. Tableau ligne Fixe + menu déroulant
    Par melitta dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 10/10/2005, 15h04

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