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 :

Tableau de TShape réellement créés


Sujet :

Langage Delphi

  1. #1
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut Tableau de TShape réellement créés
    Bonjour,

    j'ai un Tshape sur ma form, avec des attributs spécifiques (couleur, ...).

    J'aimerais pouvoir, depuis mon code, créer autant d'autres Tshape identiques que je pourrais positionner/afficher où je veux.

    Je pensais utiliser un TobjectList pour cela.

    Problème, l'aide de Delphi ne m'"aide" pas trop justement (pas d'exemples... je crois que mon aide est buggée...), alors je ne suis pas sûr de pouvoir faire ça, car déjà je me demande si le fait d'ajouter un Tshape dans le tobjectLlist (voir code plus bas) va reellement faire afficher le Tshape (existe t'il reelement en tant qu'objet instancié affiché ou est il juste crée "en mémoire")...

    Voici mon code et les pb/questions associés:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    listeImagesCligno : TObjectList;
    ...
    ...
    // (-> dans une procedure du Mainform:)
    listeImagesCligno.Add(TShape.create(self));
     
    // cadreImageDepart est la fameuse shape deja presente dans la form, dont je veux reprendre tous les attributs:
    listeImagesCligno.Items[0] := CadreImageDepart; // je met zero exprès, je sais qu'il faudra par la suite utiliser la propriété "count" de TobjectList
     
    //-> Maintenant ici comment assigner un top et un left spécifique à mon nouveau Shape ???
    listeImagesCligno.Items[0].width ne marche pas évidemment !

    Merci à ceux qui pourront m'aider...

  2. #2
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    je viens de trouver sur le forum pour le width:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TShape(listeImagesCligno.Items[0]).width := ...
    par contre mon appli plante après... "adress violation bidul chouette..."

  3. #3
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    j'ai trouvé logiquement pour l'assignation des attributs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        TShape(listeImagesCligno.Items[0]).Brush := CadreImageDepart.Brush;
        TShape(listeImagesCligno.Items[0]).Shape := CadreImageDepart.Shape;
    par contre, ça plante plus loin dans le code... la mémoire se bouffe la queue... z'avez une idée ?

    Merci.

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut


    pour récupérer tous les propriété de l'objet utilise la methode assign

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      if assigned(listeImagesCligno.Items[0]) Then
      begin
        if  listeImagesCligno.Items[0] is TShape) Then
          (listeImagesCligno.Items[0] as TShape).assign(CadreImageDepart);
      end;

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

Discussions similaires

  1. Creation dynamique d'un tableau de TShape
    Par uriotcea dans le forum C++Builder
    Réponses: 7
    Dernier message: 03/08/2006, 21h58
  2. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  3. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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