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 FMX Delphi Discussion :

Intercepter un click dans un style


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    539
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 539
    Par défaut Intercepter un click dans un style
    Bonjour,

    J'ai créé une application avec un Tstylebook dans lequel j'ai chargé un style fourni avec rad studio.
    Je souhaite personnaliser le style du TTabItem pour qu'il affiche une croix, permettant de fermer l'onglet.
    J'ai pu sans (trop de) difficulté ajouter un TBitmap dans le style. Le problème, c'est que lorsque j'ajoute un evènement onclick, il n'est jamais exécuté. J'ai essayé une autre méthode:
    J'intercepte la création du TTabItem et je recherche la resource correspondant à ma croix avec StyleFindResource. J'affecte une procédure son évènement onclick, mais il n'est jamais appelé non plus. quelqu'un a-t-il une idée?

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    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 089
    Par défaut
    Tu détourne bcp l'utilisation des styles ?
    Pour moi, c'est plus une création de composant ou un code manuel un peu plus rustique pour gérer ce genre de chose que bidouiller un style !

    Je trouve étrange de passer par un style pour apporter de telles fonctionnalités !

    Utilise directement OnMouseUp, tu auras déjà le X et Y de la souris, puisque je suppose que tu vas filtrer la position du Bitmap

    A quel moment, interceptes-tu la création du TTabItem ?
    Peut-être que tu le fais trop tôt
    Tu fourni un OnClick, mais si le DFM n'en contient pas ou un autre, ne va-t-il pas écraser ton gestionnaire ?

    D'ailleurs, pose un TButton, et affiche l'adresse du TTabItem.OnClick
    00000000 ou un truc genre 05F05F05 ?

    un TTabItem hérite tout du TTextControl, hum ça sens la bidouille les Tab FMX, est-ce que le TTabControl propage les clics reçus vers ses TTabItem ?

    CustomIcon du FMX.TTabItem remplace si je comprends la doc la propriété Images sur le VCL.TTabControl ?
    Dommage qu'il n'y ait pas CustomIconLeft et CustomIconRigth comme pour le VCL.TButtonedEdit, un bouton gauche et\ou droite, cela aurait été tellement simple d'ajouter un icone de tab et un bouton de tab que l'on est tellement habitué à voir sur FireFox !

    Pourquoi FMX qui est purement graphique ne reprend pas ces bonnes idées de la VCL
    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 éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    539
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 539
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Tu détourne bcp l'utilisation des styles ?
    Pour moi, c'est plus une création de composant ou un code manuel un peu plus rustique pour gérer ce genre de chose que bidouiller un style !

    Je trouve étrange de passer par un style pour apporter de telles fonctionnalités !
    Je pensais que c'était plus simple. J'avais abandonné Delphi depuis quelques années pour visual studio et WPF. Il était très simple de personnaliser un style avec des triggers. Je croyais que FMX fonctionnait sur le même principe.

    Citation Envoyé par ShaiLeTroll Voir le message
    A quel moment, interceptes-tu la création du TTabItem ?
    Peut-être que tu le fais trop tôt
    Tu fourni un OnClick, mais si le DFM n'en contient pas ou un autre, ne va-t-il pas écraser ton gestionnaire ?
    Dès le début, c'est l'appli qui ajoute les TabItem et leur affecte l'évènement onClick à la création

    Citation Envoyé par ShaiLeTroll Voir le message
    CustomIcon du FMX.TTabItem remplace si je comprends la doc la propriété Images sur le VCL.TTabControl ?
    Dommage qu'il n'y ait pas CustomIconLeft et CustomIconRigth comme pour le VCL.TButtonedEdit, un bouton gauche et\ou droite, cela aurait été tellement simple d'ajouter un icone de tab et un bouton de tab que l'on est tellement habitué à voir sur FireFox !
    Je n'ai pas la propriété CustomIcon dans mon TTabItem. Elle n'apparait ni dans l'inspecteur d'objet ni en complétion de code
    Citation Envoyé par ShaiLeTroll Voir le message
    Utilise directement OnMouseUp, tu auras déjà le X et Y de la souris, puisque je suppose que tu vas filtrer la position du Bitmap
    Je crois que c'est effectivement ce que je vais faire. Je posterai le résultat de mes recherches

  4. #4
    Membre éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    539
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 539
    Par défaut
    J'ai avancé un peu. Je n'avais pas remarqué que la propriété Hittest de mon image était à false. Je l'ai passé à true et ça marche bien....tant qu'il n'y a qu'un onglet d'ouvert.
    Dès que j'ouvre un second onglet, plus aucun ne répond aux clics.

  5. #5
    Membre éclairé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    539
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 539
    Par défaut
    Bon voilà,

    J'ai suivi les conseils de ShaileTroll, j'ai rattaché l'évènement onclick à mon TTabItem et dans le traitement de l'évènement, je compare la position de la souris avec celle de la croix pour fermer. si ça matche, je ferme l'onglet

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

Discussions similaires

  1. Intercepter un click sur un Contrôle dans une UserForm
    Par RedColibri dans le forum VBA Word
    Réponses: 2
    Dernier message: 11/07/2008, 11h35
  2. Intercepter les click dans un XLA
    Par Bevan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/05/2008, 14h53
  3. Intercepter un double click dans une CListBox
    Par kurtisnotdead dans le forum MFC
    Réponses: 3
    Dernier message: 12/02/2008, 17h44
  4. Conflit dans les styles CSS
    Par Nerva dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/03/2005, 22h56
  5. [C#] Evenement click dans un Panel
    Par keyser-soze dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/05/2004, 22h21

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