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 VCL Delphi Discussion :

[Débutant] [Delphi6] StringGrid & Picture


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut [Débutant] [Delphi6] StringGrid & Picture
    Bonjour j'ai une question,
    Comment peut-on insérer une image dans une case d'une stringGrid?
    Merçi
    Compil your life guy!
    The Aures Project

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 60
    Par défaut StringGrid image
    Slt!

    Il faut que tu créés un composant héritant de la StringGrid et mettant des composants images dans une cellule. C'est le même système que la fois ou quelqu'un avait demander de mettre des checkbox. Malheureusement, je crois que ce thread a été supprimer :S

    A+!

  3. #3
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    mouarf merçi mais il n'y a pas moyen d'avoir une approche? un p'tit coup de pouce quoi lol parceque c'est unpeu complex pour moi
    Compil your life guy!
    The Aures Project

  4. #4
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    j'ai unpeu trifouiller dans le monde d'héritage de nouveraux composants mais je ne vois pas comment je pourrai modifier ma stringgrid pour qu'el puisse porter une image enfin des images
    Compil your life guy!
    The Aures Project

  5. #5
    Membre éclairé

    Inscrit en
    Novembre 2002
    Messages
    815
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 815
    Par défaut
    Tu as de possibilité
    1° soit tu t'orientes vers des composant qui font deja cela ( ex: TmsSoftWare )
    2° soit sans vouloir developper un composant specifique , tu peux dessiner ce que tu veux dans une cellule en passant par l'evenement OndrawCell de ton stringGrid.

    Bye.

  6. #6
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    Merci pour les astuces.
    Citation Envoyé par petitcoucou31
    2° soit sans vouloir developper un composant specifique , tu peux dessiner ce que tu veux dans une cellule en passant par l'evenement OndrawCell de ton stringGrid.
    Je vois pas vraiment comment je pourrai procéder pour efféctuer ma tâche :s

    Bon je change de question, y'a t-il moyen d'insérer des bouttons dans une string grid (1 buton par case)? je sais que oui lol mais comment?
    à part créer un nouveau composant (ce que j'ai du mal à faire) je ne vois pas autrement...
    Compil your life guy!
    The Aures Project

  7. #7
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Salut !

    Avec une TDrawGrid plutôt qu'une TStringGrid...
    http://www.developpez.net/forums/viewtopic.php?t=319435


  8. #8
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour,

    Ce qui est dommage, c'est que le composant DrawGrid n'a pas la propriété "Object[]".
    Et j'en ai absolument besoin.

    N'y a t-il pas moyen de mettre dynamiquement une image différente dans chaque cellule d'une colonne ?
    Sans passer par un imageList, ce serait le pied.

    Merci D'avance.

  9. #9
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par petitcoucou31
    tu peux dessiner ce que tu veux dans une cellule en passant par l'evenement OndrawCell de ton stringGrid.
    La démo de mon puissance4 répond à ta question je pense, en utilisant l'evènement OnDrawCell (voir dans unit1.pas la méthode GrilleDrawCell)...
    Pour simplifier, il faut d'abord créer (sans oublier de la libérer) une variable globale de type TBitmap pour pouvoir récupérer les images d'une 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
    Var bmp: TBitmap;
     
    Procedure TForm1.FormCreate(Sender: TObject);
    Begin
       bmp := TBitmap.Create;
    End;
     
    Procedure TForm1.FormDestroy(Sender: TObject);
    Begin
      bmp.Free;
    End;
     
    Procedure TForm1.GrilleDrawCell(Sender: TObject;
      ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
    Var index: Integer;
    Begin
      index := 0; // Numéro de l'image dans la liste
      ImageList1.GetBitmap(index, bmp);
      Grille.Canvas.Draw(Rect.Left, Rect.Top, bmp);
    End;

  10. #10
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour Sub0,

    Sympa ton prog... Très propre.

    Seulement, j'aimerais ne pas passer par un imageList.
    En effet, je ne connais pas à l'avance les images à afficher, c'est dynamique.
    De plus, je ne veux pas qu'elles soient formatées à la même taille.
    Et pour finir, j'ai l'impression que tImageList "retravaille" les images avant de les stoquer.

    Est ce possible de ne passer que par un seul et même tBitmap par exemple ?

    Juste comme ça: Pourquoi passes tu par un tBitmap... Tu peux dessiner directement depuis le tImageList de cette manière:
    ImageList1.Draw(Canvas, Rect.Left, Rect.Top, numImage);

    Merci.

  11. #11
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par dacid Voir le message
    Seulement, j'aimerais ne pas passer par un imageList.
    Un Array of TBitmap (ou Timage) fera l'affaire, non ?

    Citation Envoyé par dacid Voir le message
    Est ce possible de ne passer que par un seul et même tBitmap par exemple ?
    Oui, tu peux par exemple utiliser les ressources pour stocker tes bitmaps dans l'EXE, ou bien directement sur le disque en utilisant Loadfromfile...

    Citation Envoyé par dacid Voir le message
    Tu peux dessiner directement depuis le tImageList de cette manière:
    ImageList1.Draw(Canvas, Rect.Left, Rect.Top, numImage);
    En effet, bien vu!

Discussions similaires

  1. [Lazarus] [Débutant] Contenu StringGrid dans un Edit
    Par samkad dans le forum Lazarus
    Réponses: 2
    Dernier message: 16/03/2010, 16h57
  2. [Débutant][Composants] StringGrid et ComboBox
    Par femtosa dans le forum Delphi
    Réponses: 3
    Dernier message: 09/05/2007, 08h17
  3. [Delphi6][DBGrid][DBNavigator]Débutant
    Par 7 dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2005, 00h52

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