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

Mise à jour composants TMS


Sujet :

Composants VCL Delphi

  1. #1
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Points : 473
    Points
    473
    Par défaut Mise à jour composants TMS
    Bonjour,

    C'est l'été, on en profite pour faire les montées de versions de composants. (Et aussi Delphi 10.3 => 11.3, mais c'est pas le sujet courant)
    Nos TAdvStringGrid passent de la version 3.1.4.0 à la version 3.2.1.2.

    Le problème : à l'ouverture d'un fichier avec un DFM et enregistrement direct SANS AUCUNE modification, certaines propriétés de l'AdvStringGrid sont modifiées dans le dfm.
    Entre autres, goFixedHorzLine vient s'ajouter dans Options. Les autres différences touchent surtout à des Color/ColorTo et des Font.

    goFixedHorzLine étant définit par la VCL, j'ai fait une expérience avec un TStringGrid simple dans un nouveau projet en D10, mais pas de soucis quand je l'ouvre en D11.

    J'ai essayer de modifier notre héritier d'AdvStringGrid, pour changer les valeurs par défaut de la property mais ce n'est pas concluant.
    J'espère ne pas avoir à modifier les 1004 instances de ce composant à la main dans notre codebase.

    Mes questions :
    • Quelqu'un a-t-il déjà rencontré un problème similaire ?
    • Où axer mes modifications ? (le code TMS, ou notre héritier d'AdvStringGrid)
    • Est-ce que des méthodes de brute peuvent marcher ? (exemple : modifier les propriétés Version des AdvGrid dans les dfm en dehors de Delphi, pour ne pas qu'il essaye de convertir)

  2. #2
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 614
    Points
    3 614
    Par défaut
    Citation Envoyé par rbh Voir le message
    J'ai essayer de modifier notre héritier d'AdvStringGrid, pour changer les valeurs par défaut de la property mais ce n'est pas concluant.
    J'espère ne pas avoir à modifier les 1004 instances de ce composant à la main dans notre codebase.
    Malheureusement on ne peut pas lutter contre les évolutions cassant la compatibilité ascendante de composants tiers.

    N'oublie pas que les fichiers DFM sont en texte, tu peux donc mouliner avec un programme à toi pour faire les changements que tu veux y faire (en y respectant les espaces et nombres de chiffres après les virgules le cas échéant.

    S'agissant d'un composant TMS contacte aussi leur support pour voir s'ils n'ont pas une solution à ton cas.

  3. #3
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Points : 473
    Points
    473
    Par défaut
    Je craignais cette réponse, mais merci d'être franc avec moi

    Je vais voir à créer un post sur leur forum demain.
    Je garde le fil ouvert, si jamais quelqu'un arrive avec une solution miracle, ou pour donner ma solution choisie. Si pas de solution miracle ça sera évidemment un script, comme tu suggères, j'étais temporairement choqué par le 1000+.

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 792
    Points : 13 462
    Points
    13 462
    Par défaut
    Citation Envoyé par rbh Voir le message
    J'ai essayer de modifier notre héritier d'AdvStringGrid, pour changer les valeurs par défaut de la property mais ce n'est pas concluant.
    Tu as bien modifié propriété et constructeur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    type
       TMyStringGrid = class(Vcl.Grids.TStringGrid)
       public
         constructor Create(aOwner :TComponent); override;
       published
         property Options default [goVertLine,goHorzLine,goRangeSelect,goFixedRowDefAlign];
       end;
     
    constructor TMyStringGrid.Create(aOwner: TComponent);
    begin
      inherited;
      Options := [goVertLine,goHorzLine,goRangeSelect,goFixedRowDefAlign];
    end;

  5. #5
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Points : 473
    Points
    473
    Par défaut
    J'ai refait un essai pour être sûr, et oui, j'ai toujours le problème avec uniquement ces modifications dans mon héritier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    const
      DEFAUT_OPTIONS =  [goFixedVertLine, ....
     
    ...
      TLocalGrid=class(TAdvColumnGrid)
    ...
        property Options default DEFAUT_OPTIONS;
      end;
    ...
    constructor TLocalGrid.Create(AOwner:TComponent);
    ...
      Options := DEFAUT_OPTIONS;
    end;
    Une recherche m'assure qu'il n'y a aucune instances de goFixedHorzLine dans le code, en dehors des différents fichiers TMS pour les Grid et les démos de TMS, rien de le code de mon entreprise. (dans le dépôt des composants)

    Encore pire, en continuant les essais, je vois que même l'enregistrement en ayant changer l'option à la main ne reste pas.
    Si je compile sans ouvrir le fichier en question, pas de problème, mais si je l'ouvre et enregistre, le petit revient.

    J'ai posté sur le forum TMS, je vous tiens au courant de mes progrès, certainement après le weekend.

    Merci !

  6. #6
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Points : 473
    Points
    473
    Par défaut
    Pas de progrès pour l'instant, mais j'ai confirmé qu'avec le code TMS pur (sans toutes nos modifications) je n'ai pas le problème.

    Il va falloir que je trouve laquelle de nos modifications cause ça.

Discussions similaires

  1. mise à jour composant graphique
    Par robert_trudel dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 26/04/2009, 14h33
  2. Réponses: 1
    Dernier message: 27/08/2008, 08h40
  3. Mise à jour des composants TMS
    Par kurkaine dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/04/2007, 21h09
  4. [D7] mise à jour de composants => compilation impossible
    Par Magnus dans le forum Composants VCL
    Réponses: 6
    Dernier message: 27/09/2005, 14h53
  5. composants de mise à jour logiciels ....
    Par PierreT dans le forum Composants VCL
    Réponses: 3
    Dernier message: 29/08/2005, 17h07

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