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 :

TGrid : simuler une TDrawGrid


Sujet :

Composants FMX Delphi

  1. #1
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Points : 93
    Points
    93
    Par défaut TGrid : simuler une TDrawGrid
    Bonjour,

    Premiers pas avec Firemonkey aujourd'hui (C++Builder XE2), et même si la technologie est jeune, il y a là un gros potentiel.

    Un composant que j'utilisais beaucoup avec la VCL est le TDrawGrid (peut être à tord parfois). J'ai un peu de mal à le simuler avec Firemonkey. En fait il me faudrait un composant TDrawColumn, ou une méthode OnDrawCell dans la grille...

    Je ne comprends pas bien la philosophie. Pourquoi GetValue est un événement de TGrid, et non de TColumn ?.. Quelle est la meilleure manière de simuler un TDrawGrid selon vous ?

  2. #2
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut
    Citation Envoyé par PocoYote Voir le message
    Bonjour,

    Premiers pas avec Firemonkey aujourd'hui (C++Builder XE2), et même si la technologie est jeune, il y a là un gros potentiel.
    C'est sur qu'il y a du potentiel. C'est d'ailleurs le problème des trucs qui ont du potentiel : le commun des mortels (dont je fais partie) a parfois du mal à en saisir la substantifique moëlle...


    Citation Envoyé par PocoYote Voir le message
    Je ne comprends pas bien la philosophie. Pourquoi GetValue est un événement de TGrid, et non de TColumn ?.. Quelle est la meilleure manière de simuler un TDrawGrid selon vous ?
    Là par contre je peux t'apporter un élément de réponse.
    Le TGrid ne gère pas ses données au principe de la séparation (le fameux modèle Vue Contrôleur Données érigé comme mode de fonctionnement en Objective C et sous IOS (comme c'est étonnant..).
    Ce qui veut dire que le TGrid ne contient aps les données. Par contre, il contient une méthode "GetValue) qui lui renvoie ce qu'il faut afficher dans une cellule donnée. Ca offre plusieurs avantages :
    • d'abord on sépare les données de l'affichage, ça sécurise
    • ensuite, ca permet d'avoir à peu près n'importe quoi dans les cellules sans s'en faire : on peut avoir 2 ligens de 2 colonnes et avoir 4 objets différents à afficher. Tordu mais efficace...
    • Par contre ça change un peu la façon de voir les choses...

    Moi aussi j'ai été surpris, mais à force on s'y fait...
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  3. #3
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Points : 93
    Points
    93
    Par défaut
    Merci arkhamon pour ta réponse.

    Pour la TGrid, dommage quand même de ne pas avoir une méthode OnDrawValue avec les méthodes OnGetValue et OnSetValue...

  4. #4
    Membre éprouvé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Points : 1 264
    Points
    1 264
    Par défaut
    Ben en fait, si j'ai bien compris, l'avantage de cette méthode est que justement ce n'est pas le TGrid qui se charge de dessiner, mais bien le contrôle inclus. Donc si ta cellule possède un TButton, alors ce sont les méthodes d'un TButton qui sont invoquées (y compris un "Onclick"). Ca donne toute la puissance à la chose. Ca parait compliqué au début mais après quand on a plongé la tête dedans (comme pour tout FMX en fait), c'est super simple... si je puis dire...
    "L'incohérence de ceux qui dirigent et l'incompétence de ceux qui critiquent sont un vibrant hommage à ceux qui exécutent."
    Général George S. PATTON. Messine 1943.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Pour revenir à
    Je ne comprends pas bien la philosophie
    , il faut comprendre que FMX n'est pas vraiment fait pour dessiner sur un canvas. Le framework se base sur l'affichage d'objets graphiques (formés de "primitives" dirons-nous). Une methode "OnDrawCell" devient alors un non-sens car l'objet affiché dans une cellule est composé de multiples canvas. Par example sur un bouton (et selon les resources) il y a 6 canvas (5 primitives et le canvas du bouton...)

    Par contre rien ne t'empéche de créer ta propre classe de colonne et d'implémenter la méthode qu'il te faut (onDrawCell).
    Dailleurs pour avoir une experience relativement avancée avec vgScene ( qui est toujours à 99% similaire à la partie de FMX concernée, càd les HD apps), je te recommande de créer tes propres composants plutôt que de bricoler avec les events. (dailleurs regarde les sources, une colonne c'est à tout casser 50 lignes de code, en comptant les déclaration !)

    même si la technologie est jeune
    comme dit précedemment, FMX n'est pas sorti d'une pochète surprise, en fait celà existait depuis plusieurs années. les codes source de FMX et vgScene sont encores très très similaires. Par contre la TGrid a effectivement été ajouté sur la toute dernière version (4.x) et elle est peut être moins mature que les composants traditionels.

Discussions similaires

  1. Impossibilité de simuler une entree clavier
    Par mafyoso dans le forum Windows
    Réponses: 17
    Dernier message: 08/03/2006, 12h13
  2. Simuler une pression sur la touche PrintScreen
    Par Furius dans le forum Windows
    Réponses: 4
    Dernier message: 05/01/2006, 13h26
  3. Simuler une monter en charge sur un serveur
    Par MrPink dans le forum Outils
    Réponses: 4
    Dernier message: 06/12/2004, 10h16
  4. [Oracle / Admin] Simuler une panne
    Par shaun_the_sheep dans le forum Administration
    Réponses: 12
    Dernier message: 04/11/2004, 15h13
  5. [Applet]simuler une touche clavier
    Par mat10000 dans le forum Interfaces Graphiques en Java
    Réponses: 19
    Dernier message: 12/12/2003, 16h23

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