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

Delphi Discussion :

Menu contextuel dans PopUp


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 219
    Par défaut Menu contextuel dans PopUp
    Bonjour,
    Pour accéder à divers liens dans mon navigateur internet perso inclus dans mon application, j'ai un menu PopUp listant ces liens. Tout fonctionne bien.
    Je désirerais à chaque lien ouvrir par un clic droit un menu contextuel "Ouvrir dans un nouvel onglet" comme dans les navigateurs commerciaux. Ce menu contextuel fera alors appel au code du bouton "+".
    Voilà. Je livre ce problème à votre sagacité jamais prise en défaut
    Merci. Cordialement

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    Suffit d'ajouter les TMenuItem dans le PopupMenu, il faut différencier celui pour le TPageControl et celui TTabSheet
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 219
    Par défaut
    Voici le code que j'ai concocté (trop simple, peut-être ?) après votre réponse ShaiLeTroll. J'ai créé un sous-menu pour chaque lien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TBrowserFrame.mnOngletPlusClick(Sender: TObject);
    begin
      MainForm.btnPlusClick(Self);
      WVBrowser1.Navigate('lien à lancer');
    end;
    Pourquoi MainForm.btnPLus... ? Parce les 2 boutons + et - sont sur MainForm, directement inspiré de la demo de WebBrowser. Mais là n'est pas le problème puisque la création d'un onglet fonctionne. Mais si un onglet est bien créé, la page se charge bien mais dans l'onglet précédent celui qui est créé mais pas dans celui qui est créé. Il y a toujours un décalage d'un onglet.

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    Je ne connais pas la démo mais je vois que tu utilises un "WVBrowser1" donc je suppose que ce n'est pas un TPageControl mais TTabControl qui est juste la partie onglet sans la partie conteneur, car sinon tu n'utiliserais pas un composant posé sur la fiche mais des objets générés à la volée

    Il faut changer le PageIndex pour que l'index ajouté soit bien celui visible même si ce n'est qu'une illusion avec un TTabControl alors qu'avec un TPageControl cela implique une permutation de conteneur
    D'ailleurs, n'avoir qu'un seul WVBrowser1 me choque, cela voudrait dire que cela recharge la page à chaque changement d'onglet ?

    Pour ma part, j'aurais un tableau array of TWebBrowser ou un array of TWebSheet (une TForm ancrée contenant ce qu'il faut pour isoler le code d'une page au lieu d'avoir tout dans le main)

    En réalité, invoquer "btnPlusClick" n'est pas une bonne pratique, mieux vaut faire une méthode réutilisable que btnPlusClick et mnOngletPlusClick utiliseront
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 219
    Par défaut
    Non il y a bien un seul WVWebBrowser, un seul WVWindowsParent et il y a bien un PageControl dont les TabSheet sont générées dynamiquement par appui sur le bouton "+", ou supprimées par appui sur le bouton "-". On peut générer le nombre de TabSheet nécessaire. Je l'ai dit, tout ceci fonctionne parfaitement.
    Si on veut voir la demo il faut installer WebView4Delphi. Très simple. Toute cette partie navigateur à onglets vient de la demo.

Discussions similaires

  1. [C#.NET2.0] Menu contextuel dans une cellule d'un datagridview
    Par TheParadoX dans le forum Windows Forms
    Réponses: 16
    Dernier message: 28/08/2006, 10h08
  2. Menu contextuel dans un treeview
    Par Racob dans le forum IHM
    Réponses: 2
    Dernier message: 07/06/2006, 22h26
  3. Supprimer la barre de menu contextuel dans un état
    Par soso78 dans le forum Access
    Réponses: 2
    Dernier message: 07/10/2005, 00h05
  4. Créer un menu contextuel dans une zone de liste
    Par 973thom dans le forum Access
    Réponses: 10
    Dernier message: 13/09/2005, 23h59
  5. menu contextuel dans treeview
    Par GAGNON dans le forum IHM
    Réponses: 6
    Dernier message: 08/04/2005, 18h11

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