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 :

Connaître la taille de la fenêtre client d'un composant avec barres de défilement


Sujet :

Composants FMX Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Connaître la taille de la fenêtre client d'un composant avec barres de défilement
    bonjour,

    d'une manière générale, je ne sais pas comment connaître la taille de la zone client d'une composant avec des barres de défilements (ex TScrollBox)

    dans ce cas précise, j'utilise un TMS FMX Treeview,

    apres avoir ajouté plusieurs noeuds,
    je voudrais connaitre la taille du contenu pour redimensionner la fenêtre (pour eviter si possible d'avoir la scrollbar verticale)

    (rq : les noeuds peuvent avoir une taille variable selon le texte)



    any advices ?

    merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    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 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    peut être en utilisant un des évènements Afterxxx. par exemple AfterDrawNode ou AfterDrawNodeText et en cumulant les ARect.Height à moins qu'il soit possible d'obtenir la taille totale du Canvas du TreeView après chargement de tout les noeuds (AfterDraw) ?
    Quoique mes essais en ce sens ne donnent rien de concluant

    [Edit] par conséquent je l'ai fait "à l'ancienne"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TFormProduction.Button1Click(Sender: TObject);
    var h : Single;
        ANode : TTMSFMXTreeViewNode;
    begin
    H:=Treeview.ColumnsAppearance.TopSize+4; // 4 pour ajouter quelques pixels
    ANode:=TreeView.Nodes[0];
    while Assigned(Anode) do
     begin
       H:=H+ANode.VirtualNode.Height;
       Anode:=ANode.GetNext;
     end;
    Showmessage(H.ToString);
    end;
    toutefois, je n'ai pas testé avec une hauteur de texte variable à vérifier
    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

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    merci pour cette réponse,

    effectivement ça fonctionne, mais si je diminue la taille de la fenêtre, la taille des icones n'est plus prise en compte (ceux qui sont masqués et qui dépassent la hauteur du texte) dans le calcul de la hauteur de chaque Node..

    bon j'ai finalement opté pour une solution encore un peu plus "a l'ancienne" en testant la valeur de Treeview.VerticalScrollBar.IsVisible et en augmentant progressivement la taille du TreeView jusqu'à ce qu'elle soit False..

    bref, une bonne bidouille qui fonctionne, mais je me demande tout de meme comment connaître la taille de la zone client d'une composant FMX avec des barres de défilements (ex TScrollBox)

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/06/2005, 16h14
  2. [Débutant][JLabel] Connaître la taille du texte
    Par Herisson_f dans le forum Composants
    Réponses: 8
    Dernier message: 04/05/2005, 10h53
  3. Réponses: 7
    Dernier message: 07/06/2004, 10h42
  4. [Débutant] Trouvez la taille d'une fenêtre
    Par Sharukh Khan dans le forum MFC
    Réponses: 6
    Dernier message: 06/06/2004, 22h23
  5. Modifier la taille de la fenêtre DOS
    Par bobgeldof7 dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 31/01/2004, 03h10

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