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 :

changer le texte de tous les Items dans un mainmenu


Sujet :

Composants VCL Delphi

  1. #1
    C.M
    C.M est déconnecté
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Points : 58
    Points
    58
    Par défaut changer le texte de tous les Items dans un mainmenu
    salut dans un mainmenu je voudrais changer le texte de tous les Items
    à partir d'un bouton.

    Ceci ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var i: integer;
    begin
      for i := 0 to pred(ComponentCount) do
          if Components[i] is TMenuItem(Sender) then
            TMenuItem(Sender).Caption:='bonjour'
    Je ne sais pas comment faire...

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Points : 241
    Points
    241
    Par défaut
    Tu dois faire une function recursive

    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
     
    procedure TForm1.Button1Click(Sender: TObject);
     
      procedure ChangeCaption(Item: TMenuItem);
      var
        i: integer;
      begin
        for i := 0 to Item.Count - 1 do
        begin
          Item[i].Caption := 'BonJour';
          if Item[i].Count <> 0 then
            ChangeCaption(Item[i]);
        end;
      end;
     
    begin
      ChangeCaption(MainMenu1.Items);
    end;
    .

  3. #3
    C.M
    C.M est déconnecté
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Points : 58
    Points
    58
    Par défaut
    vous etes sur de votre code?

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par C.M
    vous etes sur de votre code?
    Oui, je l'ai testé, pourquoi? ça ne te marxe pas? ça te donne quelque erreur?


    .

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    Citation Envoyé par cadetill
    Tu dois faire une function recursive
    .
    Tu n'est pas obligé de faire une fonction récursive, une double boucle est suffisant et plus efficace.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
    	i,j : integer;
    begin
    	for i := 0 to Self.MainMenu.Items.Count - 1 do
        begin
           	Self.MainMenu.Items[i].Caption := 'bonjour';
        	for j := 0 to Self.MainMenu.Items[i].Count - 1 do
            begin
            	Self.MainMenu.Items[i].Items[j].Caption := 'bonjour';
            end; // for j
        end; // for i
    end;

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par cpdump
    Tu n'est pas obligé de faire une fonction récursive, une double boucle est suffisant et plus efficace.
    Je crois que oui, tout depend du nombre de subitems que tu as

    Je m'explique....

    Si tu as par ejample:

    Menu1
    |- Menu11
    |- Menu12
    Menu2
    |- Menu21

    Avec 2 bucles ça sera sufit mais si tu as

    Menu1
    |- Menu11
    | |- Menu111
    | |- Menu112
    |- Menu12
    Menu2
    |- Menu21

    Tu auras besoin de 3 bucles anides,.......
    Avec la recursion ça n'importe pas, tu peux tenir le niveux que tu veux

    .

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    J'avais oublié qu'on pouvait avoir plusieurs niveaux de sous-menus

  8. #8
    C.M
    C.M est déconnecté
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Points : 58
    Points
    58
    Par défaut
    merci

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

Discussions similaires

  1. [JTree] Sélectionner tous les items dans un dossier
    Par Ceubex dans le forum Composants
    Réponses: 0
    Dernier message: 03/08/2012, 19h25
  2. Réponses: 23
    Dernier message: 23/03/2011, 15h41
  3. Réponses: 3
    Dernier message: 01/08/2007, 22h50
  4. Réponses: 12
    Dernier message: 13/04/2007, 16h40
  5. Sélectionner tous les entiers dans une fourchette
    Par ludo.guy dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/07/2004, 09h15

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