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 :

Taille d'un texte


Sujet :

Composants FMX Delphi

  1. #1
    Membre actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 138
    Points : 207
    Points
    207
    Par défaut Taille d'un texte
    Bonjour,

    j'utilise un TMSFNCBloxControl sous FMX. J'utilise plus particulièrement un TTMSFNCBloxFlowActionBlock. Je connais TMSFNCBloxFlowActionBlock.FontName (string) et TMSFNCBloxFlowActionBlock.FontSize(Double).

    J'aimerais calculer la largeur et la hauteur du texte affiché dans TTMSFNCBloxFlowActionBlock.Strings pour ajuster au mieux mes objets.
    Nom : Capture d’écran 2022-04-04 145402.png
Affichages : 145
Taille : 5,8 Ko

    Je sais faire cela en Lazarus. Mais je n'arrive pas à transposer le code en FMX.
    Merci. Cordialement. Gilles
    -------
    PS
    • Je ne suis pas soudainement devenu feignant mais voila ce que j'obtiens quand je suis les liens Embarcadero [Heureusement que j'utilise une version gratuite Vous demandez des dommages et intérêts pour une telle qualité de service... sachant que ce n'est pas la seule indisponibilité constatée depuis 2 jours que je teste les TMSFNCBloxControl :
      Nom : Capture d’écran 2022-04-04 150333.png
Affichages : 134
Taille : 163,4 Ko
    • La version de TMSFNCBloxControl n'existe en test que sous Delphi. Là encore, le fait que ce soit une Community pénalise l'installation du composant :
      Nom : Capture d’écran 2022-04-03 154606.png
Affichages : 135
Taille : 26,9 Ko
      Mais là ce n'est pas imputable à Delphi mais à TMS Software. La fin de l'installation se fait manuellement
    • Visiblement comme le précisait Patrick, il doit y avoir un vrai problème de piraterie parce que j'ai vu apparaître plusieurs fois la boîte de dialogue suivante
      Nom : Capture d’écran 2022-04-03 175152.png
Affichages : 136
Taille : 15,5 Ko

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    FMXTFont (Delphi) en Alexandria fonctionne !

    FMX mais surtout TMS !
    FMX.Graphics.TCanvas.TextHeight ne fonctionne pas en fournissant au Canvas la Font choisie ?
    Voir même directement le Canvas du TMSFNCBloxControl ou le Canvas du Render.


    EDIT : Sur un poste, il ne faut pas mélanger de version Pro, Ent, Arch avec une version Community, il faut plutôt utiliser un Arch Trial, et faire renouveler la période d'essai.
    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 actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 138
    Points : 207
    Points
    207
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    FMXTFont (Delphi) en Alexandria fonctionne !

    FMX mais surtout TMS !
    FMX.Graphics.TCanvas.TextHeight ne fonctionne pas en fournissant au Canvas la Font choisie ?
    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
    function TextWidth(aString : String; aFontName : String; aFontSize : Single) : Single;
    var
      b: TBitmap;
      f : TFont;
    begin
       result := -1;
       f := Tfont.Create;
       b := TBitmap.Create;
       try
        f.Family := aFontName;
        f.Size := aFontSize;
        b.Canvas.Font.Assign(f);
        result := b.Canvas.TextWidth(aString);
      finally
        b.Free;
        f.Free;
      end;
    end;
    Ceci a l'air de fonctionner effectivement. J'étudierai l'utilisation du TFont du composant TMS plus tard quand j'aurai les sources du composant. Pour l'instant, j'ai la version de test qui ne s'installe que sur Delphi et pas sur Lazarus. Mais je dois reconnaitre que le zoom auto me plait bien. Je ne sais pas si je dispose de cette fonction sous Lazarus. J'ai passé commande. Je saurai cela au plus tard demain. Et puis il est vrai, que cerise sur le gâteau, cela fonctionnerait sous tablettes... Cela mérite réflexion même si, je préférerais -et de loin- utiliser C++ Builder. Mais si ce dernier cible iOS, il ne cible pas mac OS ? Et pas Linux ? Pourquoi C++ ? Parce que le projet que je développe de Learning Analytics utilise des librairies C++ d'IA. ET je n'ai rien vu d'aussi "intégré" dans le webinar sur l'IA avec Delphi dont Serge m'a envoyé le lien (et que je remercie)

    Citation Envoyé par ShaiLeTroll Voir le message
    EDIT : Sur un poste, il ne faut pas mélanger de version Pro, Ent, Arch avec une version Community, il faut plutôt utiliser un Arch Trial, et faire renouveler la période d'essai.
    C'est possible cela ? de renouveler ? Ce serait tellement plus simple si un enseignant retraité (depuis sept. 2021) dans le cadre de support à son ancienne fonction pouvait continuer à utiliser la version Academic pour achever le développement [j'en suis à la visualisation des résultats] d'un projet pédagogique open source... à la disposition de ses Collègues en activité, notamment mes Collègues prof. de maths


    Je pourrais évidemment utiliser la version Academic de mon fils, prof également. Mais je ne veux pas m'y résoudre. Comme l'a précisé Patrick, cela manquerait d'éthique. Finalement, j'utiliserai certainement Qt qui lui me permet légalement de développer et diffuser mon projet. Totalement idiot parce que mon langage de coeur est le Pascal. Mais ras le bol de me battre contre les moulins à vent d'Embarcadero, les incertitudes des roadmaps. Ah que j'appréciais mes rapports avec Borland et mon ancien Collègue, prof. de maths lui-aussi, initiateur de Delphi ! Mais pourquoi l'a-t-il vendu ?

    A bientôt et merci pour l'aide. Cordialement. Gilles

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Si la réponse donnée est concluante, tant mieux !




    Pour la version Communauty, installer TMS qui est un composant payant me semble paradoxal, cela ne permet pas d'apprendre le Delphi mais rend les développeurs dépendant d'une bibliothèque externe, tout ce qu'il ne faut pas apprendre à mon avis, donc logique cela soit incompatible.
    Pour mes Devs personnels, je suis partisan du Zéro Lib ... d'ailleurs, j'ai codé un mini-diagramme UML à base TPanel + Canvas ... c'était encore en D7 perso et j'ai en fait refait en XE2, depuis faut pas déconner, je code plus durant mes temps libres.

    OpenSource avec une dépendance à TMS
    TMS propose une version "TMS Academic License", ils sont malins, si des étudiants prennent l'habitude de TMS à l'école, ça peut faire de futurs clients !
    Cela n'a rien de généreux, c'est de la publicité !

    La version Communauty n'est pas conçue pour être utilisé pour valider une version de Delphi dans l'objectif de migration d'une version Pro N version Pro N+m
    La version Trial, tu peux la faire renouveler un mois par un mois, faut contactez Barnstern, ils comprennent que migrer de version à coût, pas vraiment la licence mais surtout le code existant, les bibliothèques externes (eh oui on doit tout de même en trainer, même Indy lorsqu'il est utilisé massivement c'est à étudier lorsque tu as modifié le code)?
    J'ai déjà migré des projets de D7 ou DXE2 vers D10.0 où je travaille, il a fallu repatcher les bibliothèques (Excel, Zip, Crypto) malgré leur mise à jour, toujours buggées au moment, voire plus !
    Par chance, très peu d'IHM Delphi car Dev à 99% de Servers applicatifs.
    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

  5. #5
    Membre actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 138
    Points : 207
    Points
    207
    Par défaut
    Pour TMS je l'utilise professionnellement dans mon E.S.N. familiale avec Lazarus et donc je paye, c'est normal. Cependant tu remarqueras que je n'utilise que les composants FNC de TMS, FNC parce qu'ils sont compatibles avec Lazarus et par chance (ou stratégie) ils fonctionnent avec Firemonkey. Je n'utilise pas FireMonkey dans mon entreprise -j'en ai décidé ainsi- mais Qt. J'ai longuement hésité entre les 2... et il a fallu que je revisite C++ mais surtout que j'apprenne Qt. Et curieusement cela m'a été moins pénible et plus facile que de passer de VCL à FMX surtout avec les premiers XE.

    J'utilsais Firemonkey en tant qu'enseignant [mon autre métier]. J'ai été très enthousiaste avec les projets destinés aux mobiles et extrêmement déçu par le développement vers les cibles Desktop [Linux inexistant au départ, puis produit tiers et maintenant incorporé dans certaines versions... et mac OS visiblement négligé]. D'ailleurs Windows sous FireMonkey était tout aussi négligé. Enfin "utilisais" est un bien grand mot parce que je n'adhère pas vraiment. Mais j'ai énormément apprécié Delphi jusqu'à ce que je décide de cibler d'autres OS que Windows. Il en reste quelque chose même si je suis conscient que ce n'est pas vraiment raisonnable mais purement affectif.

    Maintenant quand je portais ma casquette de prof., très fréquemment j'ouvrais mon code. Concernant un projet Delphi, je fournis le *.dprog, les *.fmx et les *.pas du projet et non le code des bibliothèques tierces [même s'il est ouvert] sauf si ce sont les miennes. Charge à la personne qui veut recompiler les sources d'acquérir [éventuellement par des licences Academic] les composants tiers et la version de Delphi nécessaire avec la licence adéquate.

    Fournir le code source, cela ne signifie pas que tu n'as qu'à le compiler. C'est beaucoup plus riche que cela, comme un raisonnement mathématique : à toi de l'adapter à tes besoins, à ta plate-forme. Heureusement parce que concernant Delphi, mes codes XE2 n'étaient plus portables en XE 7, et les codes XE7 ne le sont plus en XE13 [Delphi 10.4]. Même la nomenclature des versions Delphi n'est pas logique (portable !). Le suffixe "XE13" pour identifier delphi 10.4 est inclus dans les packages TMS... Cela me semble bien.

    Le tout fait à la main, j'en ai fait énormément avec Lazarus et encore maintenant. C'est extrêmement chronophage. J'ai quasiment un composant "maison" pour les plus usuels. Un travail de plus de 10 ans. C'était le seul moyen pendant longtemps de pouvoir développer correctement avec cet IDE d'autant que beaucoup de composants n'étaient pas fonctionnels sur tous les OS. Maintenant, je trouve le code plutôt stable et plutôt complet. Et mon IDE lazarus fonctionne nativement sur Windows, mac OS, Linux comme Qt

    Le projet de Learning Analytics serait trop ambitieux si je devais le faire tout à la main d'autant que comme je l'ai précisé, la partie IA n'est pas accessible à Delphi. Mais la partie IA fonctionne indépendamment. Il serait quand même sympathique que toutes les parties utilisent le même langage. Ce ne serait pas la promesse de Firemonkey ?
    Dans ce projet, j'utilise Delphi pour mettre en forme les données traitées et visualiser le résultat des traitements. Je cherche à les visualiser aussi bien sur tablettes ou PC (sans préférence d'OS) pour, en un clin d’œil, permettre aux élèves de se positionner dans leur progression pédagogique, quels sont les travaux de remédiation à engager, de tester les pré-requis nécessaires à une nouvelle notion qui va être prochainement étudiée en classe...

    Et comme j'avais besoin pour l'entreprise d'essayer les TMSFNCBloxControl pour les intégrer dans Lazarus, j'en ai profité pour les essayer sur ma Community puisque la version d'essai de TMS FNC Blox n'est pas disponible sous Lazarus. Je suis assez convaincu d'une manière générale par les composants TMS sous Lazarus et éventuellement sous FMX (pour les FNC uniquement) quand on ne joue pas avec les styles. Il faut savoir aussi que le travail "délicat" n'est pas d'afficher des Blocs dans un arbre décisionnel mais de le dessiner aussi clairement que possible avec le moins de croisement de flèches possibles, chaque bloc pouvant être émetteur ou destinataire de plusieurs liens. Il faut savoir sous-traiter même si -je suis d'accord avec toi- l'idéal est de maitriser de A à Z. Il ne faut pas non plus être jusqu'au-boutiste : le langage ne t'appartient pas, tu ne l'as pas fait, tu l'utilises.

    Et donc, pour finaliser l'arbre, j'avais besoin de connaître la taille nécessaire de chaque bloc. Ensuite avant d'être capable éventuellement de dessiner les TPanel, leurs connecteurs, j'ai besoin de modéliser la meilleure représentation géométrique sur le plan.

    Je viens de recevoir la clé de TMS, je vais voir cela de plus près et parallèlement je vais regarder comment je peux faire cela avec Qt (ie la partie affichage à la TMS FNC Blox)

    Désolé je suis toujours aussi bavard.
    A bientôt. Gilles

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 045
    Points : 40 963
    Points
    40 963
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    j'interviens tard car le Lundi après midi je suis HS

    j'utilise ceci pour calculer les hauteurs de mes éléments de liste
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    {$REGION 'Calcul taille variable d''un item de TListview'}
     // todo : à mettre dans une unité à part (réutilisation)
     function GetTextHeight(const D: TListItemText; const Width: single; const Text: string): Integer;
        var  Layout: TTextLayout;
             Hauteur : Single;
             vFont : TFont;
        begin
          // Creer un TTextLayout pour obtenir les dimensions du texte
          Layout := TTextLayoutManager.DefaultTextLayout.Create;
          try
            Layout.BeginUpdate;
            try
              // Initialiser le layout parameters avec ceux de l'élément (style)
              Layout.Font.Assign(D.Font);
    {$IFDEF ANDROID}
    // bogue android, la taille de fonte par défaut (18) n'est pas toujours trouvée !
    // à tester
              if D.Font.IsSizeStored=false then  Layout.Font.Size:=18; // D.Font.DefaultSize;
     
    //          if (D.Font=12) OR (D.Font=18) then   Layout.Font.Size:=18;
    {$ENDIF}
              Layout.VerticalAlign := D.TextVertAlign;
              Layout.HorizontalAlign := D.TextAlign;
              Layout.WordWrap := D.WordWrap;
              Layout.Trimming := D.Trimming;
              Layout.MaxSize := TPointF.Create(Width, TTextLayout.MaxLayoutSize.Y);
              Layout.Text := Text;
            finally
              Layout.EndUpdate;
            end;
            // nécessite un single
            Hauteur:=Layout.Height;
            // petit gap supplémentaire, la hauteur d'un 'm'
            if D.Wordwrap then begin
              Layout.Text := 'm';
              Hauteur:=Hauteur+Layout.Height;
            end;
            Result := Round(Hauteur);
          finally
            Layout.Free;
          end;
        end;
    {$ENDREGION}
    Comme il s'agit d'un "vieux code" (plus d'un an) rédigé en version 10.3.2 je ne sais pas si le "bogue" Android a été corrigé depuis.

    quand je suis les liens Embarcadero
    Ha, ça ce n'est pas nouveau, il y a eu une période de presque 3 semaines bien pire ou le docwiki était carrément hors service. La cause officielle, la migration vers d'autres serveurs, une officieuse un changement de version de la base de données (mysql) non anticipée !

    La seule documentation qui semble vraiment accesssible (encore !) à l'heure actuelle est celle d'Alexandria car un effort considérable avait été fait pour la sortie de la version 11.1 (histoire de ne pas trop se faire taper dessus )
    un conseil pour les exemples : plutôt chercher dans le dépôt GitHub https://github.com/Embarcadero dans les référentiels (repositories) RadStudioxxxxx Demos
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    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 611
    Points
    3 611
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Pour la version Communauty, installer TMS qui est un composant payant me semble paradoxal, cela ne permet pas d'apprendre le Delphi mais rend les développeurs dépendant d'une bibliothèque externe, tout ce qu'il ne faut pas apprendre à mon avis, donc logique cela soit incompatible.
    Alors attention : ce n'est pas de l'incompatibilité, c'est un choix de TMS.

    Ceci dit, la Community Edition n'embarque pas les compilateurs en ligne de commande, donc difficile d'automatiser la compilation comme le fait l'installeur TMS en temps normal. Donc plutôt que de diffuser les DCU déjà compilés comme le font les autres ils ont choisi de laisser l'utilisateur faire les choses à la main (seule possibilité puisqu'il faut passer par l'IDE).

  8. #8
    Membre actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 138
    Points : 207
    Points
    207
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Pour la version Communauty, installer TMS qui est un composant payant me semble paradoxal, cela ne permet pas d'apprendre le Delphi [...]
    Je n'avais pas fait attention. Apprendre [enfin je préfère comprendre] les Styles et le LiveBindings du nouveau Delphi, t'occupe un peu. Et dans mon cas, c'est un euphémisme. Cela représente 75% de mon temps "perdu" sans compter la complétion que je trouve souvent inefficace [ie ne propose rien] parce que tu dois préciser la classe avant la valeur des propriété alors que dans les uses tu as déclaré les unités nécessaires. Je ne connais que Delphi XE qui soit aussi pénible à l'usage. Même (et surtout) le vieux Delphi 7 proposait mieux. Lazarus, et même Qt,... sont beaucoup plus simple d'utilisation, plus "guidés". Et finalement Delphi est devenu presque aussi "verbeux" que C++

    Bon je m'accorde encore à mon "pénible et lent développement" sur Delphi avant de basculer vers mes habituels IDE.
    Bonne journée. Gilles

  9. #9
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 045
    Points : 40 963
    Points
    40 963
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par HTML-Dev Voir le message
    Apprendre [enfin je préfère comprendre] les Styles et le LiveBindings du nouveau Delphi, t'occupe un peu
    Un peu ! Pour ma part, je suis toujours en apprentissage/compréhension de ces deux bestioles et découvre assez régulièrement des choses, en exemple ledernier source que j'ai proposé, le billet d'explication étant toujours en brouillon

    Mais si à cela tu mêles des composants TMS, pour ce qui est des styles comme de LiveBindings ce sera pas gagné ! Je n'ai pas vérifié pour les FNC mais pour ce qui est des TMS FMX quelle déception, j'ai presque abandonné toute utilisation de ces derniers et tente de les retirer de mes anciennes
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Membre actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 138
    Points : 207
    Points
    207
    Par défaut
    Hello Serge,

    Citation Envoyé par SergioMaster Voir le message
    Je n'ai pas vérifié pour les FNC mais pour ce qui est des TMS FMX quelle déception j'ai presque abandonné toute utilisation de ces derniers et tente de les retirer de mes anciennes
    Idem pour moi. J'ai arrêté le renouvellement des composants TMS FMX. D'autant qu'ils étaient pris en charge par mon entreprise au prétexte de plate-forme de développement potentielle.
    Une image extraite d'une de nos vieilles discussions sur le sujet dans ce forum illustre parfaitement nos propos avec ue grille TMS FMX [au-dessus] et une grille "native" presque "naturelle' de l'OS en-dessous :

    Nom : fmxlinux03.png
Affichages : 102
Taille : 103,4 Ko

    Pour les FNC, je ne sais pas. Je ne veux pas utiliser les styles [sauf cas particuliers]. Je voudrais simplement que sous Linux ou mac OS, les styles naturels de ces OS apparaissent "naturellement". Il y a évidemment une tolérance mais l'utilisateur ne doit pas avoir d'utiliser un bricolage, un portage mal fini d'une application Windows vers son OS préféré. Et cela, je n'ai jamais réussi à l'obtenir [sauf évidemment avec Lazarus]. Mais le dépit vient du fait que j'obtenais plus "naturel" avec Qt [qui n'utilise pas les objets "graphiques" natifs des OS mais les siens] et qu'en plus, en cas de distorsion avec l'esthétique, il est relativement facile de modifier un style en Qt. J'attendais et j'attends toujours aussi bien avec FireMonkey.

    Ensuite ne pas utiliser TMS Software me paraît difficile à moins d'en rester à l'époque de la machine à écrire, c'est-à-dire sans pouvoir gérer le texte enrichi [ie afficher, saisir, imprimer] faute de composants fournis dans Firemonkey. Nativement, je fais cela avec Qt aussi bien dans des champs de saisie, dans les "Grids" et autre Treeview. Mais quand on voit le développement (donc les capacités) des TStringGrids natives, je reste perplexe.

    Le problème est là en réalité. Je ne peux plus tester sauf peut-être à prendre une version "Trial". Je sais parce que je l'ai constaté que la gestion naturelle des styles des OS Linux et mac OS -quoiqu'on puisse en dire sur ce forum- était pour le moins approximative avec XE7. C'est la dernière version Academic que j'ai réellement testée.

    Ma question -toujours d'actualité- est de savoir, si avec la version XE14 (delphi 11), on a enfin quelque chose de portable facilement et respectueux des styles des plateformes ciblées. Par exemple une Ubuntu, ou une Mint ou une Debian et évidemment Monterey. Je ne parle pas des composants TMS mais des objets natifs affichés de FireMonkey. Si à l'affichage, on a exactement les mêmes TStringGrids natives avec exactement le même style sous les 4 OS (en ajoutant Windows), la réponse est non. Si ce problème est résolu, je peux envisager d'acheter une version Enterprise... pour l'entreprise . Mais je n’investirai pas 2 800 € sur des potentielles certitudes... même exprimées sur ce forum. J'ai pu déjà constater des "écarts" entre des écrits et ce que l'esthétique des TForms sur mes écrans. Et je rappelle en plus que comme, le seul moyen de visualiser le résultat sur l'OS cible est de lancer l'exécutable cross-compilé sur la cible, en cas de défaillance du respect des styles cela devient pénible... même plus que pénible alors qu'avec Lazarus ou Qt, l'IDe étant installé sur la poste mac OS ou le poste Linux, les modifications sont nettement plus aisées évidemment. Chat échaudé....

    A bientôt. Gilles

  11. #11
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 045
    Points : 40 963
    Points
    40 963
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par HTML-Dev Voir le message
    Ensuite ne pas utiliser TMS Software me paraît difficile à moins d'en rester à l'époque de la machine à écrire, c'est-à-dire sans pouvoir gérer le texte enrichi [ie afficher, saisir, imprimer] faute de composants fournis dans Firemonkey.
    C'est effectivement un point noir, que je n'ai pas (encore) fouiller

    Mais quand on voit le développement (donc les capacités) des TStringGrids natives, je reste perplexe.
    Joker, je ne comprends pas bien, de plus je n'utilise quasiment plus

    Ma question -toujours d'actualité- est de savoir, si avec la version XE14 (delphi 11), on a enfin quelque chose de portable facilement et respectueux des styles des plateformes ciblées.
    Quelques différences
    le style natif : quelques composants, je n'ai pas fait le recensement encore, utilisent le style natif ou peuvent l'utiliser il y a une propriété pour ça
    les styles firemonkey : sont élaborés à partir de "couleurs systèmes" et d'une apparence mais n'utilisent pas les couleurs systèmes sensu stricto (c'est celui qui a fait le style qui a fait les choix)
    les thèmes en FMX, c'est non, c.a.d. que jusqu'à présent je n'ai vu qu'un choix et détection des thémes clair ou foncé. Je ne sais même pas si sous windows on peut détecter le théme certainement dans le fourre-tout des registres mais s'il faut ensuite l'appliquer cela demanderai un nombre conséquent de fichier style fmx !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #12
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 045
    Points : 40 963
    Points
    40 963
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    C'est effectivement un point noir, que je n'ai pas (encore) fouiller
    Par contre Paul Toth semble avoir travailler dessus https://github.com/tothpaul/Delphi/tree/master/RichView
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  13. #13
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Par contre Paul Toth semble avoir travailler dessus https://github.com/tothpaul/Delphi/tree/master/RichView
    en effet

    il y a la fonction MeasureText qui cherche le nombre de caractère qu'on peut mettre dans une largeur donnée.

    et DrawText qui dessine une portion de texte éventuellement mise en forme...je ne me souviens plus trop du détail, mais c'était un peu le bazar avec AddAttribute
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. [XHTML] changer la taille d un text field et d un bouton post
    Par BernardT dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/06/2006, 10h10
  2. taille d'un texte...
    Par adrien954 dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/02/2006, 14h37
  3. Réponses: 13
    Dernier message: 12/12/2005, 13h58
  4. Calculer la taille d'un texte dans un DC
    Par vanitom dans le forum MFC
    Réponses: 9
    Dernier message: 28/10/2005, 15h32
  5. Taille d'un Texte (TextOut)
    Par KPitN dans le forum MFC
    Réponses: 7
    Dernier message: 14/05/2004, 11h43

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