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

Langage Delphi Discussion :

String -> PenStyle


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut String -> PenStyle
    Bonjour tout le monde,
    j'ai un petit problème de types, si quelqu'un pouvait m'aider, ce serait génial...
    Je récupère des champs dans un ComboBox (donc des strings) dans une variable X et je voulais faire
    Pen.Style := X.
    Mais là, j'ai un fabuleux :
    E2010 Types incompatibles : 'TPenStyle' et 'string'

    Suis-je passé à coté d'une fonction qui permet de changer des strings en PenStyles ou dois-je me créer un tableau de PenStyle et gérer ca, par exemple, avec les tags (ou la position dans la combobox, peu importe)?

    Merci d'avance !

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Le message de Delphi aurait pu te mettres la puce à l'oreille

    Syntaxe Delphi :

    type TPenStyle = (psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame);

    Syntaxe C++ :

    enum TPenStyle {psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame};

    Description

    TPenStyle peut avoir l'une des valeurs suivantes :

    Valeur Signification

    psSolid Une ligne continue.
    psDash Une ligne constituée d'une série de tirets.
    psDot Une ligne constituée d'une série de points.
    psDashDot Une ligne constituée d'une alternance de tirets et de points.
    psDashDotDot Une ligne constituée d'une série de séquences tiret-point-point.
    psClear Pas de ligne dessinée (style utilisé pour ne pas dessiner la ligne autour de formes dont le contour est dessiné par le crayon en cours).
    psInsideFrame Une ligne continue pouvant utiliser une couleur mélangée si Width est supérieure à 1.
    tu cherches à faire une affectation dont les type sont différent à gauches et à droite.
    Je ne sais pas ce que tu cherches exactement à faire, mais aide-toi de la touche F1 sur les types de propriétés que tu cherches à affecter, je pense que tu comprendras vite ton problème.

    bon courage !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Heuuu,
    tu cherches à faire une affectation dont les type sont différent à gauches et à droite.
    Effectivement, c'est le problème...
    Ce que je cherche, c'est effectivement si il existe une fonction intégrée pour passer de String à TPenStyle, ou si je dois la faire moi même!
    Ca ne sert à rien de faire du crade si la fonction existe

  4. #4
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    A vrai dire, tu avais l'air étonné de cette erreur dans ton 1er post ...

    que contient ta combo exactement ? des chaines de car. représentant des style de lignes ?

    si c'est le cas, tu peux affecter a chaque item de la combo, la valeur correspondant au style dans l'object associé (en faisant un cast)

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox1.AddItem( 'Trait Solide', Tobject( Ord( psSolid ) ) );
    et pour retrouver ton style sur un click

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var MonStyle: TPenStyle;
    ...
    MonStyle := TPenStyle( Integer( ComboBox1.Items.Objects[ IIndex cliqué ] ) ).
    JE ne suis pas sur, s'il faut obligatoirement passer par le cast Integer à chaque fois, à tester...

    Mais cette méthode t'oblige à construire ta liste dynamiquement.

    Sinon, il faut te faire une liste, associant les numéros d'index de ta combo aux styles de trait.


    :EDIT:
    Après un petit test, le cast Ord() et Integer() ne sont pas nécessaires

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Mouais...
    ComboBox1.AddItem( 'Trait Solide', Tobject( Ord( psSolid ) ) );
    Cette réponse me parait... Parfaite!
    Merci bien!

    EDIT : Ouaip, j'avais réussi à les réutiliser après coup, merci! C'était le Tobject qui me faisait defaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. éliminer un caractere d'un string
    Par no-vice dans le forum Langage
    Réponses: 5
    Dernier message: 09/08/2002, 15h55
  2. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 21h22
  3. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 10h47
  4. Réponses: 2
    Dernier message: 05/06/2002, 13h29
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 16h23

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