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 :

Comment placer TGraphicControl en avant des autres composants de ma fiche


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 249
    Par défaut Comment placer TGraphicControl en avant des autres composants de ma fiche
    Bonjour,

    J'ai écrit un composant TInfoBox = class(TGraphicControl) qui s'affiche lorsque l'utilisateur clique avec le bouton droit de la souris pour afficher des informations relatives à ce composant, mais je ne réussis pas à placer ce TGraphicControl en avant de tous les autres composants de ma fiche comme le font les Hints Box. J'ai affecté True à la propriété BringToFront mais ça ne marche pas.

    Voici de que dit l'aide de Delphi à propos de BringToFront
    -------------------------------------------------------
    procedure BringToFront;

    Description
    Appelez BringToFront pour garantir qu'une fiche est visible ou pour réorganiser la superposition des contrôles dans une fiche.
    Les objets qui englobent des objets écran Windows (classes de contrôles dérivées de TWinControl) s'empilent toujours sur des contrôles légers (classes de contrôles dérivées de TGraphicControl). BringToFront peut forcer un contrôle léger tel que Shape à s'empiler sur d'autres contrôles légers ; en revanche, les contrôles englobés tels qu'Edit s'empilent sur le contrôle Shape.
    Sans BringToFront, les contrôles s'empilent dans l'ordre dans lequel ils ont été placés sur la fiche.
    -------------------------------------------------------

    Je veux avoir une boite d'info qui ne peut avoir le focus (Donc TGraphicControl selon moi) et qui apparait par dessus tous les autres composants de la fiche comme le fait les Hints Box (propriété Hint).
    J'utilise Delphi 6 Personnelle et je suis sur qu'un composant similaire doit exister dans les autres versions c'est quelque chose qu'on voit courramment.

    PiPo123

  2. #2
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Tu n'as pas trop le choix : il te faut placer ton composant dans un TPanel qui lui-même se placera au-dessus de tous les autres composants. Tu peux aussi utiliser une TForm avec BorderStyle à bsNone.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 249
    Par défaut
    J'ai essayé aussi avec TMemo car j'avais un accès facile aux texte avec Lines.TStrings mais si j'enlève le focus avec Enable = False je modifie l'apparence du mémo, j'ai alors pensé affecter à NIL les méthodes OnClick, OnKeyDown etc. pour empêcher le focus et je ne sais pas mais j'obtiens toujours le focus donc si je pouvais enlever le focus sur TMemo sans changer son apparence ça serait correct. Je vais essayer avec TPanel aussi. J'ai aussi appris que TGraphicControl utilise le canvas du Owner lors de la création avec Create(Self) c'est logique donc comme tu dis j'ai pas trop le choix.

    Objectif: Remplacer le PopUpMenu qui s'affiche normalement avec un click droit de la souris pas une petite boite de texte comme les hints Box en avant de tous les autres composants.

    Pipo123.

Discussions similaires

  1. Comment placer un élément après un autre ?
    Par CinePhil dans le forum jQuery
    Réponses: 3
    Dernier message: 03/08/2012, 09h06
  2. [JXTA] Comment récupérer les pipe advertisments des autres peers
    Par adel_adl dans le forum Général Java
    Réponses: 2
    Dernier message: 08/06/2010, 15h12
  3. Réponses: 0
    Dernier message: 10/02/2010, 14h24
  4. Comment placer un composant en dessous d'un autre ?
    Par AliJava dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 07/10/2008, 09h26
  5. Comment placer un composant visuel dans un autre ?
    Par defluc dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/07/2008, 21h51

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