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

Langage Delphi Discussion :

[D7] menu tronqué par une frame


Sujet :

Langage Delphi

  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut [D7] menu tronqué par une frame
    Bonjour tout le monde,

    Dans une forme j'ai placé 2 frames de la manière suivante :
    -------------------------------
    MENU // Frame
    -------------------------------
    FILTRES // Frame
    -------------------------------
    // reste de la Forme
    -------------------------------
    Le problème que je rencontre est que quand je clique sur un menu qui dépasse la longueur de la 2ème frame alors il est tronqué (comme si la 2ème frame était en arrière-plan par rapport au reste de la forme).

    Comment faire ?
    Merci d'avance.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Personne ne sait ?
    Je ne m'exprime pas assez clairement ?
    Je peux reformuler si c'est le cas...

    Au fait, j'ai bien sûr testé en invoquant BringToFront sur la 1ère frame mais ça ne change rien à l'exécution.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  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
    Salut,

    voici des questions :
    C'est bien un TMainMenu ou un TPopupMenu, hein ?

    Le menu descent jusqu'où, jusqu'au bas de la 2ème Frame, autrement dit, où est-il tronqué ?
    Bidouilleuse Delphi

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Salut waskol
    Citation Envoyé par waskol
    C'est bien un TMainMenu ou un TPopupMenu, hein ?
    C'est bien un TMainMenu

    Citation Envoyé par waskol
    Le menu descent jusqu'où, jusqu'au bas de la 2ème Frame, autrement dit, où est-il tronqué ?
    Le menu s'affiche jusqu'au bas de la seconde frame.

    Depuis mon 1er post à ce sujet j'ai testé différents interactons des frames : j'ai essayé de les regrouper dans une seule frame ou alors de les distinguer et d'ajouter la seconde dynamiquement lors de la création de la fiche.

    Résultat : à chaque fois l'ajout de la seconde frame dynamiquement masque les éléments du menu qui arrivent à son niveau.

    Une idée ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    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
    Tu as quelle version de Delphi ? Parce que moi, avec Delphi7, pas de problèmes : ça dépasse très bien. Si ce n'est que que je dois spécifier pour ma fiche Form1, que le MainMenu est celui qui se trouve dans ma Frame du haut.
    Bidouilleuse Delphi

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Merci de t'intéresser à mon problème, on se sent moins seul

    Citation Envoyé par waskol
    Tu as quelle version de Delphi ?
    D7 Ent

    Citation Envoyé par waskol
    je dois spécifier pour ma fiche Form1, que le MainMenu est celui qui se trouve dans ma Frame du haut.
    Ah et comment tu fais ça ?

    [edit]
    Dans l'événement OnCreate de ma fiche j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Self.FormFrameMenu1 := FormFrameMenu1;
    mais ça ne change rien à l'exécution
    [/edit]
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  7. #7
    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
    Pour être concret, voilà comment j'ai procédé :
    1) J'ai créé un TFrame (Menu "Fichier-->Nouveau-->Cadre");
    2) Ensuite, j'ai glissé dedans un TMainmenu (Je n'ai rentré aucun code pour mon frame : brut de brut). J'ai édité mon menu avec toutes les lettres de mon clavier, une lettre par MenuItem, pour que ça fasse un menu suffisemment long (il est fou... )
    3) J'ai demandé à Delphi de me le mettre à Dispo dans ma liste de Cadres de la palette
    4) Tout sauvé, tout fermé, crac : nouveau projet
    5) Je vais sur mon onglet "Standard", je choisis "Cadres", je sélectionne mon Frame, il apparait sur la fiche, alignement=alTop
    6) Pareil un deuxième cadre...
    7) je clique sur ma forme, dans l'inspecteur d'objet, il y a la propriété MainMenu (en rouge pour de vrai), j'ai choisi Frame1.MainMenu1, le menu est apparu sur ma fiche de conception

    8) Run : ça marche

    Et toi, tu as fait comment ?
    Bidouilleuse Delphi

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    J'ai procédé quasiment de la même manière :
    1/ j'ai créé 2 frames indépendants l'un de l'autre
    2/ j'ai créé une Tforme à laquelle j'ai ajouté l'un après l'autre chacune des 2 frames précédentes ; la 1ère que j'ai ajoutée contient le TMainMenu

    La seule différence pour l'instant est que tu n'utilises pas de TForme.
    Est-ce que tu pourrais créer une TForme et ajouter tes 2 frames en commençant par celle qui contient le menu, histoire de voir si l'on obtient le même résultat ?

    Ce que je ne comprends pas c'est que l'appel à la méthode BringToFront ne change rien du tout (?) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TfOffreClient.IWAppFormCreate(Sender: TObject);
    begin
     
    [...]
     
      Self.BringToFront; // compile mais ne change rien ????
     
    end;
    Dans la même optique j'ai fait un clic droit sur chacune de ces 2 frames et j'ai sélectionné : 'Options de contrôle', 'Mettre en arrière-plan' / 'avant plan' mais là encore pas de modification à l'exécution.

    Tu vois ce qui pourrait expliquer la différence ?

    [edit]
    Je viens de réaliser une différence qui a peut être toute son importance je ne veux pas aligner la 2ème frame avec alTop ; j'ai donc choisi alNone.
    [/edit]
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  9. #9
    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
    Si, j'utilises une TForm

    La différence tiens du fait que c'est mon application qui la crée à ma place dans le .dpr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CreateForm(TFormMain, FormMain);
    Es-tu sur que ta fiche à un Parent, style as-tu écris un machin comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Owner:=Application;
      Parent:=Application;
    Bidouilleuse Delphi

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Je vois pas en quoi le fait que la fiche soit créée par le .dpr change quoi que ce soit mais je rencontre des choses tellement bizarres sur ce projet...

    Concernant le fait que ma fiche ait un parent :
    1/ aucune modification de cette propriété n'est effectuée dynamiquement et je ne la vois pas dans la liste des propriétés de cet objet TForme
    2/ mes fiches sont créées / détruites de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      // Release the current form
      TIWAppForm(WebApplication.ActiveForm).Release;
     
      // Create the next form
      AFormClass.Create(WebApplication).Show;
    Je vois éventuellement 2 autres faits qui ont peut être leur importance :
    1/ à l'exécution le menu fonctionne non pas par clic mais par réception du curseur de la souris. Ceci dit c'est bien un TMainMenu
    2/ je travaille sous IntraWeb et ma TForme est en fait une TIWAppForm

    Qu'en penses-tu ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  11. #11
    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 Magnus
    Je vois pas en quoi le fait que la fiche soit créée par le .dpr change quoi que ce soit mais je rencontre des choses tellement bizarres sur ce projet...
    Non, le dpr ne créé rien, c'est l'application qui crée mes fiches.

    Citation Envoyé par Magnus

    Concernant le fait que ma fiche ait un parent :
    1/ aucune modification de cette propriété n'est effectuée dynamiquement et je ne la vois pas dans la liste des propriétés de cet objet TForme
    C'est une propriété public, donc accessible que par le code
    Citation Envoyé par Magnus
    2/ mes fiches sont créées / détruites de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      // Release the current form
      TIWAppForm(WebApplication.ActiveForm).Release;
     
      // Create the next form
      AFormClass.Create(WebApplication).Show;
    C'est pas très beau comme code, croise les doigts pour que ça marche bien, toujours.
    Citation Envoyé par Magnus
    Je vois éventuellement 2 autres faits qui ont peut être leur importance :
    1/ à l'exécution le menu fonctionne non pas par clic mais par réception du curseur de la souris. Ceci dit c'est bien un TMainMenu
    Je ne pense pas que ce soit la raison
    Citation Envoyé par Magnus
    2/ je travaille sous IntraWeb et ma TForme est en fait une TIWAppForm

    Qu'en penses-tu ?
    Là, je dirais que ça viens de ça... Intraweb.
    Bidouilleuse Delphi

  12. #12
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par waskol
    Là, je dirais que ça viens de ça... Intraweb.
    Tout juste : pour gérer ces troncatures de frames, il faut en fait passer la propriété ClipRegion des TIWRegion qui figure dans chaque frame à False.

    Ce paramétrage stipule que les scrollbars ne sont plus visibles et surtout que les limites ne s'arrêtent pas aux bordures de la frame.

    Intéressant...

    Merci encore waskol de m'avoir mis sur la voie.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  13. #13
    Membre habitué Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Points : 195
    Points
    195
    Par défaut
    Je débute en intraweb, il y a pas beaucoup de Doc la dessus, mais bon, je commence à comprendre petit à petit, j'ai la version 10.0 livrée avec Delphi 2009.
    J'ai créé un Frame où j'ai mis un menu, j'ai ensuite inséré ce Frame dans ma Form, j'ai mis cette procédure pour appeler mes forms :

    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
    private
        procedure Move(AFormClass: TIWAppFormClass);
      public
        { Public declarations }
      end;
     
    implementation
     
    {$R *.dfm}
     
    procedure TframeMenu.Move(AFormClass: TIWAppFormClass);
    begin
      // Release the current form
      TIWAppForm(WebApplication.ActiveForm).Release;
      // Create the next form
      AFormClass.Create(WebApplication).Show;
    end;
    j'ai une erreur à la compilation :

    [DCC Erreur] UFrameMenu.pas(41): E2003 Identificateur non déclaré : 'WebApplication'
    [DCC Erreur] UFrameMenu.pas(41): E2029 ')' attendu(e) mais identificateur 'ActiveForm' trouvé(e)
    A la Recherche du Parfait il faut faire et refaire
    L'homme sage apprend de ses erreurs. L'homme encore plus sage apprend des erreurs des autres.

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

Discussions similaires

  1. [AC-2010] Remplacer faceid d'un menu contextuel par une image perso
    Par Tierisa dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/08/2014, 08h41
  2. Context menu alimenté par une table
    Par beegees dans le forum jQuery
    Réponses: 3
    Dernier message: 13/07/2014, 20h27
  3. Liens menu dynamique vers une frame
    Par Snoopymaxx dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/04/2009, 19h09
  4. menu contextuel caché par une frame :cry:
    Par bidule_chose dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 30/10/2008, 14h11
  5. remplacer une frame de menu par du JS
    Par 17mounir dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/08/2005, 17h39

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