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 :

Un TEdit à côté d'un TMenu


Sujet :

Composants VCL Delphi

  1. #1
    Membre actif Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Points : 251
    Points
    251
    Par défaut Un TEdit à côté d'un TMenu
    Bonjour,

    J'aimerai pouvoir placer un composant TEdit avec pourquoi pas un TButton à la droite de mon TMenu. Un peu comme dans Delphi mais sans que les bars soient déplaçables ni redimmensionnables.
    J'ai essayé plusieurs solution comme un TMenu dans TToolBar mais l'affichage est horrible et ça ne répond pas au besoin.

    Avez vous une astuce pour faire ça ?

    Merci

  2. #2
    Membre actif Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Points : 251
    Points
    251
    Par défaut
    Bonjour,

    J'ai tenté les TCoolBar, TToolbar, et je n'arrive pas à obtenir quelque chose de satisfaisant. Personne n'aurez une idée ? ça en devient désespérent...

  3. #3
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Heu... je ne crois pas que ce soit possible

    Je me suis penché sur ta question depuis hier sans trouver de réelle réponse. Et au lieu de te sortir une anerie hier, j'ai préféré réfléchir un peu avant.

    Voilà le résultat de ma réflexion :
    Ce qui est sur, c'est quand un TMainMenu se dessine sur sa fiche, windows commence par dessiner une zone particulière : Une MenuBar.
    Cette zone particulière se dessine par-dessus tout les autres contrôles de la fiche et n'est pas un contrôle fenétré (comme TWinControl, donc il ne peux pas contenir un autre control graphique).

    Bref à partir de là, on ne peux pas placer un contrôle dans ou sur la MenuBar qui prend toute la largeur de la fiche qui en est la parente.

    Cependant j'entrevoie une solution possible :
    1. En guise de MenuBar, tu mets un Panel sur ta fiche (propriétés align:=alTop et BevelOuter=bvNone) avec une hauteur (Height) de 20, et avec Caption:=''.
    2. Dessus (sur ton Panel) tu places, 2 ou 3 Labels (ou boutons si tu préfère), avec comme Caption respectif 'Fichier', 'Edition', 'Aide' (par exemple).
      Tu mets leur propriétés Align à alLeft et Autosize à False.
      Tu leur affectes la largeur que tu souhaites.
    3. Tu places sur ta fiche autant de TPopupMenu, que tu as placé de Labels dans ton panel.
    4. Dans la propriété PopupMenu de tes labels, tu affecte leur PopUpMenu correspondant.
    5. Dans l'évènement OnMouseDown des Labels, tu places ce code
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);
      var APoint:TPoint;
      begin
        APoint.X:=0;
        APoint.Y:=label1.Height;
        APoint:=label1.ClientToScreen(APoint);
        PopupMenu1.Popup(APoint.X,APoint.Y);
      end;
    6. enfin tu places ton TEdit et ton TButton où tu veux dans ton Panel


    Comme ça tu auras l'effet souhaité, avec un menu qui ressemble... à un Menu.

    Sinon, j'avais bien pensé à changer la couleur des Labels dans l'évènement OnPopup des PopupMenus, mais comme on a pas de OnClosePopup, on ne peut pas remettre une couleur normale (remarque je n'ai pas trop creusé la question ) lorsque le popupmenu se referme. Du coup on a pas d'effet "HotTrack" comme sur un vrai TMainMenu.

    Voilà, voilà...
    Bidouilleuse Delphi

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par waskol
    Cette zone particulière se dessine par-dessus tout les autres contrôles de la fiche et n'est pas un contrôle fenétré (comme TWinControl, donc il ne peux pas contenir un autre control graphique).
    Et en créant un nouveau compo héritant de TMenuBar, on ne pourrait pas lui ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      ComponentStyle:=ComponentStyle+[csAcceptControls]
    ?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Un TToolBar + TMainMenu + TToolBar.Ftat = True = A ce que tu veux non ?

  6. #6
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Pedro204
    Citation Envoyé par waskol
    Cette zone particulière se dessine par-dessus tout les autres contrôles de la fiche et n'est pas un contrôle fenétré (comme TWinControl, donc il ne peux pas contenir un autre control graphique).
    Et en créant un nouveau compo héritant de TMenuBar, on ne pourrait pas lui ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      ComponentStyle:=ComponentStyle+[csAcceptControls]
    ?
    Il n'y a pas de composant TMenuBar dans Delphi
    L'objet MenuBar est un objet Windows qui s'affiche avec l'API Windows DrawMenuBar (qui dessine directement sur le canvas de la fenètre).

    Sinon, si tu te sens l'âme d'un guerrier, bref si tu as le Fighting Spirit, vas-y fais nous un joli composant
    Bidouilleuse Delphi

  7. #7
    Membre averti
    Avatar de HumanTool
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 276
    Points : 378
    Points
    378
    Par défaut
    salut,
    ce que j'ai fait c'est d'utiliser la Tcontrolbar dans laquelle j'ai mis 1 à n TTtoolbar.
    Dans les TToolbar j'ai ajouté mes TToolButton suivant les menus que je souhaitais.
    Dans ma fenêtre principale j'ai un TMainMenu avec ses items. Sur chaque TToolButton j'ai relié leur propriété MenuItem au TMenuItem correspondant dans le TMainmenu.
    Enfin j'ai pu placé une combo sur 1 des TToolbar et cela marche bien.

    est ce que ça aide ?
    D'abord ils vous ignorent, ensuite ils se moquent de vous, puis ils vous combattent, enfin vous gagnez (Gandhi)

  8. #8
    Membre actif Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Points : 251
    Points
    251
    Par défaut
    Bonsoir,

    Après une soirée de php, je viens de voir vos messages. Je teste tout ça demain soir et je vous ferai mes retours (attendez vous à me revoir). Merci pour vos idées !!

Discussions similaires

  1. TEdit - Popup par défaut
    Par dugenou dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2004, 11h18
  2. Curseur d'un TEdit
    Par Guile dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/05/2003, 18h33
  3. TEdit (encore)
    Par dj.motte dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/12/2002, 19h02
  4. [TEdit][TListBox]Recherche instantanée
    Par SamDaKap dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/11/2002, 21h31
  5. TEdit : selection du texte et autre fonction
    Par Odulo dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/08/2002, 14h27

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