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 :

Utilisation de asserts


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut Utilisation de asserts
    Bonjour,

    J'ai créé un helper (voir zip du projet) sur les grilles dans le but de pouvoir trier les données

    Nom : Capture.PNG
Affichages : 196
Taille : 26,9 Ko

    Seulement il y a certaines conditions nécessaires :
    Utilisation de Firedac pour la source de données.
    Utilisation de Livebindings (cela étant en FMX c'est la seule solution pour remplir une grille sans passer par le "manuel".
    Déclaration des colonnes dans la liaison.

    Je me demandai si l'utilisation de asserts pouvait obliger ces conditions et si oui comment ?
    J'ai bien vu quelques trucs du genre mais pour des composants est-ce possible pour un helper ?

    en attendant une répose de votre part, je vais me pencher sur le visuel de l'indicateur de tri comme ébauché ici
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 933
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 933
    Par défaut
    Je ne vois pas de limite à utiliser les assertions qui finalement ne font que soulever une exception EAssertionFailed.

    Je ne me prononce pas sur LiveBinding que je n'ai jamais utilisé mais pour FireDac ce serait Assert(DataSet is TFDDataSet, 'Utilisation de FireDac obligatoire').

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    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 086
    Par défaut
    Les Assertions sont conçues pour alerter le développeur, normalement visible en config DEBUG mais masqué en config RELEASE.
    En DEBUG, donc le développeur verra l'exception
    En RELEASE, si le développeur n'a pas compris l'assertion , cela plantera surement plus loin ... si ce cas se produit, le développeur devrait songer à changer de métier

    En tout cas, je les utilises dans ce contexte, pour prévenir le développeur de corriger l'erreur, souvent mauvaises déclarations détectables au RunTime.
    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

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    Voilà ma nouvelle version (pièce jointe)
    démo
    Nom : Video_2024-09-24_91624.gif
Affichages : 164
Taille : 236,6 Ko
    Il reste un petit hic niveau glyphe si vous faites très attention au milieu du déroulement lorsque le tri de la première colonne est annulé, le glyphe ne redevient pas rond tout de suite mais après déplacement de la souris (phénomène déjà constaté dans ce sujet
    Fichiers attachés Fichiers attachés

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut
    Je suis , vert de rage, trois jours que je galère à découvrir la cause de ce petit bogue sans succès.
    Une petite souris, qui se reconnaitra si elle lit ça, m'a suggéré de tester sous D11 et là, plus de bogue. Différence : l'appel de la procedure OnDrawColumnHeader est beaucoup plus fréquente (3 fois plus, sans parler l'appel lors des mouvements de souris)
    Donc 12.1, en apportant une réduction des appels me flanque un

    tel Rocky je suis mitigé remonter sur le ring pour trouver un contournement ou me plaindre à la fédération Embarcadero en posant un rapport de bogue ?

    Sonné, je vais "dormir" dessus en passant à l'écriture du composant, le problème lié au fait qu'une colonne liée est une TLinkGridtoDataSourceColumn (unité différente de FMX.Grid) ne va pas faciliter les choses.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut
    Finalement, j'ai résolu le problème en ajoutant un appel à l'évènement OnDrawHeaderClick car je n'ai pas trouvé d'autres choix
    dans mon helper j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    { TGridHelper }
     
    procedure TGridHelper.column_headerclick(aColumn: TColumn);
    begin
      if Assigned(Self.OnDrawColumnHeader)
        then Self.OnDrawColumnHeader(aColumn,aColumn.Canvas,aColumn,aColumn.AbsoluteRect);
    end;
    pour plus de lisibilité et du coup mon code devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Grid1HeaderClick(Column: TColumn);
    begin
      var s := Grid1.Get_ColumnField(Grid1.get_componentbinding, Column);
      var sort:=Grid1.set_sort(s);
      FDMemTable1.IndexFieldNames :=sort;
      Grid1.column_headerclick(Column);  // appel à onDrawColumnHeader
    end;

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

Discussions similaires

  1. [2.x] Utiliser les Assert avec Symfony2
    Par Gaylord.P dans le forum Symfony
    Réponses: 0
    Dernier message: 20/11/2015, 16h20
  2. [Toutes versions] Comment utiliser "Debug.Assert" ?
    Par JOHN14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/02/2014, 14h56
  3. Utilisation de Assert.Equal
    Par BernardBouree dans le forum VB.NET
    Réponses: 2
    Dernier message: 22/10/2012, 11h47
  4. [Lustre] Utilisation de assert
    Par gorgonite dans le forum Autres langages
    Réponses: 2
    Dernier message: 09/10/2006, 20h40

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