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 :

Valeur retournée par un menu


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 37
    Par défaut Valeur retournée par un menu
    Bonjour

    J ai lu la faq et plus particulierement creer une appli type outlook et aussi les articles traitant du tmenu toutefois je n y ai pas trouvé ce que je cherche à savoir dans le tuto 'outlook' il y a

    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
    procedure TFPrincipal.FormActivate(Sender: TObject);
    begin
    	MenuClick(Button1);
    end;
     
    procedure TFPrincipal.MenuClick(Sender: TObject);
    begin
    	FreeAndNil(select_frame);
    	if      Sender = Button1 then select_frame := TFrmEcran1.Create(self)
    	else if Sender = Button2 then select_frame := TFrmEcran2.Create(self)
    	else if Sender = Button21 then select_frame := TFrmEcran21.Create(self)
    	else if Sender = Button3 then select_frame := TFrmEcran3.Create(self)
    	else Exit;
    	select_frame.Parent := PanelFrame;
    	select_frame.Afficher;
    end;
    j aimerais pouvoir remplacer Button.. par la valeur retournee par le Tmenu.
    Je souhaiterais donc savoir si cela est possible,à savoir faire une procedure identique a MenuClick qui traite chaque click sur un menu parceque je debute et j'en suis a faire une procedure pour chaque click sur chaque menu...cette solution pour le moins contraignante puiqu elle reprend le meme code d'affichage de la frame

    je ne sais pas si j ai été tres clair, enfin je l espere.

    merci d avance pour votre aide

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut

    je ne sais pas si j'ai bien compris. tu voudrais en fait utiliser la procédure menuClick en réponse à un click sur un menu ?
    le code teste l'origine de l'appel à la procédure grace au paramètre Sender, tu n'as donc qu'à modifier le code en conséquence pour tester si le Sender est l'un de tes éléments de menu, et effectuer aussi l'appel à la procédure via l'évènement OnClick du menu en question.
    exemple:
    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
    procedure TFPrincipal.FormActivate(Sender: TObject);
    begin
    	MenuClick(Button1);
    end;
     
    procedure TFPrincipal.MenuClick(Sender: TObject);
    begin
    	FreeAndNil(select_frame);
    	if      Sender = Button1 then select_frame := TFrmEcran1.Create(self)
    	else if Sender = MenuItem1 then select_frame := TFrmEcran1.Create(self)
    	else if Sender = Button2 then select_frame := TFrmEcran2.Create(self)
    	else if Sender = MenuItem2 then select_frame := TFrmEcran2.Create(self)
    	else if Sender = Button21 then select_frame := TFrmEcran21.Create(self)
    	else if Sender = MenuItem21 then select_frame := TFrmEcran21.Create(self)
    	else if Sender = Button3 then select_frame := TFrmEcran3.Create(self)
    	else if Sender = MenuItem3 then select_frame := TFrmEcran3.Create(self)
    	else Exit;
    	select_frame.Parent := PanelFrame;
    	select_frame.Afficher;
    end;
    PS: est ce une bonne idée de systématiquement détruire select_frame en entrée de procédure ? et si la nouvelle frame est la même que l'ancienne ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 37
    Par défaut
    merci pour cette reponse.
    a la lire c etait evident mais en fait j avais testé avec non pas MenuItem1 mais la valeur de la propriete 'name' du menu selectionné, ce qui ne donnait rien.

    concernant la destruction c est un copier coller du code de ce site
    http://delphi.developpez.com/faq/?pa...terfaceoutlook

    mais etant donné que la frame est cree dynamiquement, cela pose t il un pb ?

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut
    Citation Envoyé par turf_trader
    mais etant donné que la frame est cree dynamiquement, cela pose t il un pb ?
    non pas du tout. et puis en y repensant, tant pis pour l'utilisateur s'il clique sur le même bouton 2 fois

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

Discussions similaires

  1. comment comparer les valeurs retournés par DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2006, 15h42
  2. Réponses: 1
    Dernier message: 22/05/2006, 12h27
  3. [SQL] Valeur retournée par une requête...
    Par Empty_body dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2006, 23h13
  4. VB6 --> Valeurs retournées par une comboBox
    Par the java lover dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/12/2005, 17h26
  5. valeur retournée par un .js
    Par astrofiles dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 11h20

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