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 :

[Delphi Rio] Comment changer dimension d'un combobox


Sujet :

Composants FMX Delphi

  1. #1
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    1 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 1 790
    Points : 5 754
    Points
    5 754
    Par défaut [Delphi Rio] Comment changer dimension d'un combobox
    Bonjour

    Comme d'habitude, une tâche qui se réalise en un 1/4 de seconde avec VCL devient les "12 travaux d'Hercule" avec FMX.

    Problème du jour: Comment modifier la hauteur d'un combobox, histoire d'avoir un objet un peu plus grand pour faciliter un clic au doigt sur une tablette?


    Je me suis référé à la discussion suivante:

    https://www.developpez.net/forums/d2...e-d-combo-box/


    Comme d'habitude, SergioMaster est de bon conseil Merci à lui!

    Je ne peux pas utiliser la solution "Style" parce que ma version Delphi Rio ne me permet plus d'éditer des Styles (voir mon billet sur le forum Delphi EDI), donc j'utilise la version via du code...

    Cela fonctionne, je peux modifier les éléments (couleur, fonte, etc.), sauf qu'il m'est impossible de modifier la hauteur du combobox!!! Je peux modifier le paramètre "combobox.itemheight" mais le combobox.height reste bloqué sur "32". Impossible donc de modifier à l'affichage la hauteur de l'objet combobox (ni par code, ni par une modification à l'aide de l'éditeur d'objet).

    Aurai-je oublié de modifier un paramètre qui bloquerait la possibilité de modifier la hauteur du combobox (j'ai un "DropDownKind = Custom")?

    Merci pour votre aide...

  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,
    Citation Envoyé par Anselme45 Voir le message
    https://www.developpez.net/forums/d2...e-d-combo-box/
    Comme d'habitude, SergioMaster est de bon conseil Merci à lui!
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    donc j'utilise la version via du code...
    je vois que c'est donc la
    troisième solution : retrouver l'objet et modifier les propriétés du style, ça non plus je n'ai jamais essayé
    qui pose délicatesse

    Je ne peux pas utiliser la solution "Style" parce que ma version Delphi Rio ne me permet plus d'éditer des Styles (voir mon billet sur le forum Delphi EDI)
    J'irai y faire un tour
    le combobox.height reste bloqué sur "32". Impossible donc de modifier à l'affichage la hauteur de l'objet combobox (ni par code, ni par une modification à l'aide de l'éditeur d'objet).
    Aurai-je oublié de modifier un paramètre qui bloquerait la possibilité de modifier la hauteur du combobox (j'ai un "DropDownKind = Custom")?
    Le DropDownKind c'est pour les éléments, pas pour le combobox sensus stricto. mais je ne comprends pas pourquoi la hauteur ne puisse pas être changée la preuve
    Nom : Capture.PNG
Affichages : 367
Taille : 38,6 Ko
    Même si les flèches ne changent pas (pas normal, pb de style ?). UN moment, sans vérifier, j'ai pensé à une indication de platforme mais, non, il n'y a pas cette propriété ou bien j'ai mal cherché (j'utilise rarement celle-ci).
    Je séche, on parle bien de la hauteur de la box, pas du texte de l'item sélectionné ?
    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
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    1 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 1 790
    Points : 5 754
    Points
    5 754
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    ...
    Je séche, on parle bien de la hauteur de la box, pas du texte de l'item sélectionné ?
    Exact! Une petite image pour être clair:

    La zone qui affiche l'élément sélectionné (lettre A) a une hauteur bloquée sur la valeur "32"

    Les éléments du combobox (lettre B) peuvent être modifié (couleur, font, hauteur).

    Nom : Combobox-dimension.png
Affichages : 367
Taille : 83,7 Ko

    Pour modifier par code le combobox, j'utilise le code suivant:

    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
    procedure TForm1.StyleComboBoxItems(ComboBox:TComboBox; Family:string; Size:Single);
    var
     Item : TListBoxItem;
     i : Integer;
    begin
     ComboBox.ItemHeight:=Size+10;
     ComboBox.Height:=Size+10;    // DEBUG Ne fonctionne pas!!!
     
     ComboBox.DropDownKind:=TDropDownKind.Custom;
     
     Item:=TListBoxItem.Create(ComboBox);
     for i := 0 to ComboBox.Count-1 do
      begin
        Item:=ComboBox.ListItems[i];
        Item.Font.Family := Family;
        Item.Font.Size := Size;
        Item.TextSettings.FontColor:=TalphaColorRec.Green;
        Item.StyledSettings := Item.StyledSettings - [TStyledSetting.Family,TStyledSetting.Size,TStyledSetting.FontColor];
      end;
    end;

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    1 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 1 790
    Points : 5 754
    Points
    5 754
    Par défaut
    Un style fourni par Embarcadero est appliqué à l'application.

    Dans ce style, j'ai trouvé un layout intitulé "comboboxstyle" qui a une propriété "FixedHeight=32"

    Quand je mets "FixedHeight=0" dans le style, je peux modifier la propriété "height" du combobox dans l'inspecteur d'objet et le combobox sur la form en développement prend la bonne dimension, mais sur l'appareil Android la hauteur du combobox reste inchangé?!?

    Quand je mets "FixedHeight=50" dans le style, la propriété "Height" du combobox dans l'inspecteur d'objet prend automatiquement la valeur 50 sans que l'on puisse modifier la valeur manuellement et sur l'appareil Android on obtient un combobox d'une hauteur de 50!


    Si on a la curiosité de regarder la doc officielle de Embarcadero pour comprendre le fonctionnement de cette propriété "FixedHeight" de l'objet "layout" (a remarquer que pour Tlayout l'inspecteur d'objet affiche la propriété "Height" mais pas "FixedHeight")

    Dans la doc locale obtenue par F1, on trouve la propriété "FixedHeight" avec pour seule explication la célèbre phrase qui explique tout "Embarcadero Technologies ne possède pas d'informations supplémentaires pour le moment. Veuillez nous aider à documenter cette rubrique en utilisant la page Discussion!"


    Dans la doc en ligne pour Delphi RIO, il n'y a plus de propriété "FixedHeight" mais on a une "FixedSize" avec bien sûr la phrase "Embarcadero Technologies ne possède pas d'informations supplémentaires pour le moment. Veuillez nous aider à documenter cette rubrique en utilisant la page Discussion!"



    Je préfère ne pas décrire ma pensée, je pourrai être grossier!!!

  5. #5
    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,

    Ce ne serait pas aussi bête que la propriété stylesettings (ôter size voire fontcolor et même peut-être style)
    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

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    1 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 1 790
    Points : 5 754
    Points
    5 754
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    Ce ne serait pas aussi bête que la propriété stylesettings (ôter size voire fontcolor et même peut-être style)
    L'objet Combobox n'a pas de propriété "stylesettings" à l'inverse d'un listboxitem...

Discussions similaires

  1. Comment changer l'icone de Delphi et afficher la date ?
    Par michaellynx dans le forum Débuter
    Réponses: 11
    Dernier message: 17/11/2007, 17h53
  2. Comment changer l'icone Delphi en haut à gauche ?
    Par melles dans le forum Débuter
    Réponses: 2
    Dernier message: 12/09/2007, 21h49
  3. Réponses: 4
    Dernier message: 21/05/2007, 07h34
  4. Comment changer la couleur d'une combobox ?
    Par PetitPapaNoël dans le forum MFC
    Réponses: 6
    Dernier message: 16/03/2007, 11h00

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