Commentaires

  1. Avatar de SergioMaster
    • |
    • permalink
    Après avoir testé sous Ubuntu (cela fonctionne ) mais j'ai procédé à quelques changements au niveau du traitement de l'image, mise en ressource cela m'évite de déployer le fichier fleche.png ainsi que les problèmes de chemin de chargement c'est donc tout bénéfice.

    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
    18
    19
    20
    21
    22
    23
    procedure TBonus.ListViewMenuUpdateObjects(const Sender: TObject;
      const AItem: TListViewItem);
    //  NOTE
    // il serait mieux de ne charger qu'une seule fois la ressource dans un Stream
    // de même s'il s'agit d'un fichier
    // d'où "l'avantage" de la liste d'image quoique, si l'on utilise un MultiResBitmap on se retrouvera dans le même cas
    var aStream: TResourceStream;
    begin
    // Chargement d'une ressource
    if AItem.Purpose=TListItemPurpose.Header then
      begin
         aStream := TResourceStream.Create(HInstance,'fleche',RT_RCDATA);
          try
            AItem.Objects.ImageObject.Bitmap.LoadFromStream(aStream);
         finally
           aStream.Free;
        end;
    // Chargement fichier "externe"
    //    AItem.Objects.ImageObject.Bitmap.LoadFromFile('..\..\fleche.png');
    // Utilisation TImageList
    //    AItem.Objects.ImageObject.Bitmap:=ImageList1.Bitmap(TSizeF.Create(32,32),0);
      end;
    end;
    Ces changements ont été répercutés dans le zip.
  2. Avatar de SergioMaster
    • |
    • permalink
    Beaucoup de jours sont passés sous les ponts avant, qu'enfin, mon composant image soit fonctionnel, les liens avec une colonne de table ont été très longs à résoudre !

    Ce qui m'empêchait d'avancer était qu'un lien entre un champ et mon composant ne fonctionne pas de la même manière entre un lien sur un TProtypeBindSource et un TDBBindSource.
    Il m'a fallu beaucoup de temps pour découvrir que le mécanisme du lien avec ce dernier type de lien nécessitait un convertisseur (TValueRefConverterFactory).

    Vous retrouverez bientôt dans un premier tutoriel comment coder ce genre de composant.

    Bien que sceptique (il me reste des erreurs d'avertissement que je n'arrive pas à contrer) le tutoriel contient également la méthode de confection d'un composant mixte, fonctionnant donc sous les deux frameworks.

    Dorénavant, fort de ces nouvelles notions, je vais me pencher sur la deuxième partie le : TRadioGroupBox . D'un point de vue "portabilité" je pense que ce composant ne s'adressera qu'aux ordinateurs de bureau : ios n'aurait pas de truc de ce genre et j'ai pu voir que le comportement d'une combobox sur Android avait plus ou moins le même effet.
  3. Avatar de SergioMaster
    • |
    • permalink
    Ton commentaire est hors billet. Ici je propose une alternative au TCombobox mais il n'est nulle question d'y créer une nouvelle classe contrairement à la discussion évoquée.
  4. Avatar de ALWEBER
    • |
    • permalink
    Serge, pour revenir sur ton post d'aujourd'hui (26/02/2019).
    1) Le fait de déclarer TCombobox = class(TCombobox) est une anomalie de programmation qui ne devrait pas exister. Ce que fait Delphi c'est que ne pouvant résoudre cette egalité il le traduit par TCombobox = class(Tobject) donc l'ancêtre primordial. Donc dans la complétion du code tu ne verras que les éléments du TObject et pas les counts, items et autres
    2) J'ai refait les tests le comportement est bien le même en VCL et FMX.
    3) Delphi n'accepte pas que deux composants aient le même nom. Donc si tu veux quand même le faire il faut retirer le composant du même nom du package de base de Delphi et mettre le tient à la place
    Bonne fin de journée
  5. Avatar de seabs
    • |
    • permalink
    Bonjour @SergioMaster,

    Merci pour la mise à disposition des pièces jointes.

    A+
  6. Avatar de SergioMaster
    • |
    • permalink
    J'ai fait référence à des pièces jointes que vous ne voyez pas. Pour y avoir accès c'est par ici
  7. Avatar de SergioMaster
    • |
    • permalink
    Bonjour,
    Citation Envoyé par Koka_
    J'aimerai d'abord m'exercer : est ce que je peux réaliser les mêmes manipulation que toi avec les tables sources ? (tu nous montres le chemin) j'aimerai les DB et la réalisation de ton DBx
    C'est surement bcp demandé mais ça me permettrait de comprendre comment tu as fait
    Je ne suis pas sûr de pouvoir fournir le source, suite au crash de mon disque c'est une partie que je n'ai pas encore récupérer
    De toute façon tout (ou presque) est écrit dans le billet, la partie "cosmétique" (affichage des données) n'est là que pour illustrer.
  8. Avatar de Koka_
    • |
    • permalink
    Bonjour Sergio,

    J'ai un problème avec un éditeur qui garde ses tables en paradox. te faut il avoir accès au serveur paradox ? login ou autre ?
    Cet éditeur remonte certaines tables en SQL que j'exploite via un outil de BI dans MSS. Mais je n'ai pas accès aux tables paradox à proprement parlé, elles sont cryptés en quelque sorte sur MSS.
    Après maintes demandes, et sans retour j'aimerai pouvoir contourner leur logiciel via un script ou autre

    J'aimerai d'abord m'exercer : est ce que je peux réaliser les mêmes manipulation que toi avec les tables sources ? (tu nous montres le chemin) j'aimerai les DB et la réalisation de ton DBx
    C'est surement bcp demandé mais ça me permettrait de comprendre comment tu as fait

    Cdt
  9. Avatar de SergioMaster
    • |
    • permalink
    Bonjour
    Citation Envoyé par tourlourou
    au sujet des expressions (pas forcément pertinente, car cela ne présenterait pas fatalement d'intérêt) : elles sont interprétées ; du coup, pourrait-on les rendre modifiables à l'exécution ?
    Je dirais oui,bien sûr. Intérêt dans un programme de gestion je ne sais pas, mais dans un petit programme pour tester les expressions, là c'est plus intéressant.

    Je crois que j'ai plus ou moins abordé le sujet dans mes "introductions" (peut être pas dans les parties 1 et 2, mais dans l'épisode 3 le programme de démo teste des expressions.
    J'ai mis introductions entre guillemets car en fait en retournant dessus je dirais que c'était plutôt de la plongée de 2°niveau avec paliers de décompression !

    Dans ce même tutoriel, c'est bien aussi un changement d'expression qui s'opère, mais sans lien, avec la dll pour Firebird. J'ai créé ça pour interpréter des formules de conversion, par exemple : unité M14L=1*1,40 M2 conversion simple entre des mètres de tissus (lai de 140) et des mètres carrés, mais certaines unités peuvent donner des expressions plus complexes
  10. Avatar de Invité
    • |
    • permalink
    Merci pour ce partage.
    Il faut absolument que je trouve le temps de comprendre les livebindings grâce à tes tutos.
  11. Avatar de tourlourou
    • |
    • permalink
    Bonjour Serge,

    Une petite question m'est venue au sujet des expressions (pas forcément pertinente, car cela ne présenterait pas fatalement d'intérêt) : elles sont interprétées ; du coup, pourrait-on les rendre modifiables à l'exécution ?
  12. Avatar de SergioMaster
    • |
    • permalink
    Je suis désolé de n'avoir pu resté plus longtemps mais, n'étant plus de prime jeunesse, ma fenêtre de déplacement était courte.
    J'aurais aimé rester plus longtemps histoire de parler avec plus de personnes, c'est le problème des "grandes messes" on y voit beaucoup de monde mais on en rencontre peu.
    En tout cas je suis très content pour toi Grégory, heureux veinard à la loterie

    Heureux aussi de voir le nombre de lectures et chargements des différentes pièces jointes de ce compte rendu.
  13. Avatar de gbegreg
    • |
    • permalink
    Bonjour Serge,

    Merci pour les slides et les exemples. Je suis ravi de t'avoir rencontré "en vrai" et d'avoir pu échanger de vive voix avec toi
    Je ne t'ai pas revu après la présentation de Marion...
    Moi, j'avais pris large pour mon horaire de train de retour. Bien m'en a pris car Barnsten et TMSSoftware avait préparé une loterie avec pour lot des licences de packs de composants TMS : j'ai eu la chance d'être tiré au sort. Je suis ainsi reparti avec une licence TMS Web Core !
  14. Avatar de gvasseur58
    • |
    • permalink
    Merci Serge pour le partage de ce travail ! Je vais enfiler ma tenue de plongée et tester ta pêche
  15. Avatar de SergioMaster
    • |
    • permalink
    À l'heure où j'écris l'annonce n'est pas encore faite mais je viens de le déployer à cette adresse
    https://serge-girard.developpez.com/...dings/Grilles/
  16. Avatar de pprem
    • |
    • permalink
    vu tes précédents, hâte de voir ce que tu auras rédigé sur le sujet
  17. Avatar de SergioMaster
    • |
    • permalink
    La fonction de recherche me laissait un goût amer : on ne peut le faire que sur les objets contenus dans l'item de liste et non dans les Headers ou Footers ! Comment alors interroger un client particulier ?
    Aujourd'hui, c'est chose faite. Ma petite astuce ajouter un (ou des) objet(s) texte mais le(s) rendre invisible(s), dès lors plus de difficultés pour rechercher les factures d'un seul client.

    Correctif ajouté à mon tutoriel toujours accessible via le premier billet sur le sujet
  18. Avatar de SergioMaster
    • |
    • permalink
    Toujours non corrigé mais mis à la correction, le tutoriel s'est étoffé des essais indiqués https://www.developpez.net/forums/bl...indings-suite/

    J'ai même ajouté une petite astuce pour les recherches


    Bonne lecture
    Mis à jour 08/04/2018 à 09h36 par SergioMaster (Correctifs)
  19. Avatar de NABIL74
    • |
    • permalink
    Bonjour,

    Personnellement, je trouve que ce banc d'essai très réussit !!

    C'est beau et moderne. J'ai bien aimé l'ajout de la couleur des factures impayées ainsi que la recherche.

    Merci et bon courage SergioMaster!
  20. Avatar de SergioMaster
    • |
    • permalink
    Première mise à jour effectuée, quelques liens fonctionnent, je finalise le "paquet" sources des programmes (versions Zeos et Firedac) afin de les joindre également en téléchargement.

    A lire vos commentaires ...
Page 1 sur 2 12 DernièreDernière