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 :

Evénement Onclick d'un Mainmenu


Sujet :

Composants VCL Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Evénement Onclick d'un Mainmenu
    Bonjour à tous.

    Voilà mon problème, assez simple je l'avoue (enfin, pour vous je pense !), mais pour le pauvre petit debutant que je suis, je m'arrache les cheveux..

    Sur une form, j'ai un mainmenu, un Webbrowser (entre autre). Je peux ajouter l'adresse du site dans le mainmenu, il s'y met tres bien, le probleme, c'est comment faire lorsque je clique sur une adresse (dans le mainmenu), le webbrowser va sur le site...
    L'évènement Onclick est fait, mais je peux cliquer sur n'importe quelle adresse, il va sur le dernier ajouté ! Je sais qu'il y a un truc, mais j'arrive pas...J'ai pensé au "Index", mais je ne sais pas comment tourner la chose !

    Merci pour vos réponses.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    quand tu dis que le TWebBrowser va sur le dernier site ajouté c'est que donc tu as implémenté quelque chose. Fais voir le code de ton OnClick.

    Par ailleurs où est stocké exactement l'adresse des sites Web dans ton programme (caption des TMenuItem, un tableau, autre...) ?
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Salut
    Salut ! Oh la...Je suis plus nul que je le pensais ? En fait, l'adresse des site n'est stoké nul part ! J'avais l'intention de les mettre dans un fichier "ini" pour relecture...En attendant, ce que je voulais, c'est mettre dynamiquement l'adresse du site dans le mainmenu, mais lorsque je clique dessus, comment faire pour que le Tedit prenne la valeur du caption du menu que j'ai cliqué ? En un mot, je voudrais faire un systeme de "favoris"...Mais si je clique sur le premier, deuxieme, etc..c'est toujours le dernier "entré" qui s'affiche !
    Voici le code :

    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.Button2Click(Sender: TObject);
    var
     
    nomsite, site : string;
     
    begin
    inc(nb);
    fav := TMenuitem.Create(mainmenu1); //Création du menu
    nomsite := webbrowser1.LocationName;  // nom du site dans nomsite
       site := webbrowser1.LocationURL;  // url du site dans site
    fav.Caption := site;  // url du site dans la caption de fav
    mainmenu1.Items[0].Add(fav);  // ajout de fav dans le mainmenu
    fav.Tag := nb; // tag de fav
    fav.OnClick := fav1Click;
    panel1.Visible := false;
     
    end;
     
    procedure TForm1.fav1click(Sender: TObject);
    var
    direction : string;
    begin
    direction := fav.caption;
    edit1.Text := direction;
     
    end;
    Voilà, j'imagine bien que la, c'est simpliste. La valeur de "direction" prend la caption de "fav"...Voilà, er merci pour ton aide.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Ok alors ici ton erreur est que fav (probablement une variable globale) représente effectivement le dernier item que tu ajoutes puisque tu ne stocke pas tes items dans un tableau par exemple.

    Donc quand tu l'utilises dans le OnClick de ton TMenuItem automatiquement tu utilises l'instance de ton dernier TMenuItem ajouté. La bonne méthode est d'utiliser le Sender passé en paramètre du OnClick qui lui représente le vrai TMenuItem sur lequel on a cliqué. Le code devient donc ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.fav1click(Sender: TObject);
    var
      direction : string;
    begin
      direction := TMenuItem(Sender).caption;
      edit1.Text := direction; 
    end;
    Par contre, effectivement, comme tu le remarques il te manque le stockage pour conserver les URL et les enregistrer dans un fichier INI à la fin de l'exécution par exemple pour les retrouver au démarrage. Tu vas donc être amené à changé quelque peu ton code lorsque tu intègreras cette notion. Aussi je te conseilles d'utiliser la propriété Tag de tes TMenuItem où tu stockerais l'indice dans le tableau où se trouve l'url à récupérer par exemple.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

Discussions similaires

  1. Evènement OnClick sur calendrier
    Par psykoleouf dans le forum VBA Access
    Réponses: 2
    Dernier message: 31/05/2007, 17h43
  2. Evênement onclick créé dynamiquement
    Par Mister Nono dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/02/2007, 14h40
  3. Evènement OnClick défini dynamiquement avec parametre
    Par GuiTwo dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/12/2006, 12h58
  4. Evènement OnClick défini dynamiquement
    Par Neilos dans le forum C++Builder
    Réponses: 6
    Dernier message: 23/11/2006, 20h15
  5. Evénement OnClick
    Par Kerod dans le forum C++Builder
    Réponses: 3
    Dernier message: 01/03/2006, 23h50

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