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

Delphi Discussion :

Ajout d’icônes interactives dans une colonne sous Delphi 7


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut Ajout d’icônes interactives dans une colonne sous Delphi 7
    Sous Delphi 7, comment peut-on ajouter dans une colonne dans un DBGRID trois icônes :

    (–) pour décrémenter une quantité,

    (+) pour l’incrémenter,

    et une icône "supprimer" pour supprimer la ligne correspondante ?

    L’objectif est de permettre, via ces icônes, la modification directe de la quantité et la suppression de la ligne.

    Merci d’avance !
    Images attachées Images attachées  

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Tu les dessines et gère le clic manuellement, j'ai plein de fois ce code sur le forum TDBGridSLTAssistant

    On a un sujet similaire récemment
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Invité
    Invité(e)
    Par défaut
    Regarder cet exemple pour afficher un bitmap dans un DBGrid, remplacer le bitmap par une imageliste contenant les glyphes des boutons que tu veux créer

    https://flylib.com/books/en/2.37.1/w...ml#fastmenu_10

  4. #4
    Membre expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 469
    Par défaut
    Cela devrait ressembler à quelque chose comme ça pour ajouter des icônes à ta colonne

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer;
      Column: TColumn; State: TGridDrawState);
    var
      IconLeft: Integer;
      IconTop: Integer;
      IconSpacing: Integer;
      IconWidth: Integer;
    begin
      if Column.Title.Caption = 'Actions' then
      begin
        IconSpacing := 4;
        IconWidth := ImageList1.Width;
        IconTop := Rect.Top + (Rect.Bottom - Rect.Top - ImageList1.Height) div 2;
        IconLeft := Rect.Left + IconSpacing;
     
        // Dessiner l'icône de décrémentation (index 0 de l'image list)
        ImageList1.Draw(DBGrid1.Canvas, IconLeft, IconTop, 0);
        Inc(IconLeft, IconWidth + IconSpacing);
     
        // Dessiner l'icône d'incrémentation (index 1 de l'image list)
        ImageList1.Draw(DBGrid1.Canvas, IconLeft, IconTop, 1);
     
        // Inc(IconLeft, IconWidth + IconSpacing);
        // Etc ...................................
      end
      else
        // Pour toutes les autres colonnes, on laisse le dessin par défaut
        DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.
    Ce n’est pas un bogue - c’est une fonctionnalité non documentée.

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut
    Citation Envoyé par XeGregory Voir le message
    Cela devrait ressembler à quelque chose comme ça pour ajouter des icônes à ta colonne

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer;
      Column: TColumn; State: TGridDrawState);
    var
      IconLeft: Integer;
      IconTop: Integer;
      IconSpacing: Integer;
      IconWidth: Integer;
    begin
      if Column.Title.Caption = 'Actions' then
      begin
        IconSpacing := 4;
        IconWidth := ImageList1.Width;
        IconTop := Rect.Top + (Rect.Bottom - Rect.Top - ImageList1.Height) div 2;
        IconLeft := Rect.Left + IconSpacing;
     
        // Dessiner l'icône de décrémentation (index 0 de l'image list)
        ImageList1.Draw(DBGrid1.Canvas, IconLeft, IconTop, 0);
        Inc(IconLeft, IconWidth + IconSpacing);
     
        // Dessiner l'icône d'incrémentation (index 1 de l'image list)
        ImageList1.Draw(DBGrid1.Canvas, IconLeft, IconTop, 1);
     
        // Inc(IconLeft, IconWidth + IconSpacing);
        // Etc ...................................
      end
      else
        // Pour toutes les autres colonnes, on laisse le dessin par défaut
        DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
    j'ai ajouté une TimageList et j'ai mi le code tel qu'il est mais je ne vois rien dans mon DBGrid !
    Images attachées Images attachées  

  6. #6
    Membre expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 469
    Par défaut
    DBGrid1.DefaultDrawing := False
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.
    Ce n’est pas un bogue - c’est une fonctionnalité non documentée.

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

Discussions similaires

  1. Ajouter un champ dans une JSP sous certaines conditions
    Par intel42 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/04/2012, 08h59
  2. Ajout element option dans une liste sous IE8
    Par eag35 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/11/2010, 11h08
  3. comment ajouter des items dans un combobox sous delphi?
    Par salimo79 dans le forum Débuter
    Réponses: 6
    Dernier message: 19/10/2009, 17h21
  4. Ajout entete checkbox dans une colonne d'une datagridview
    Par pbatty1 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 31/07/2009, 10h17
  5. Requete insertion dans une table sous delphi?
    Par EssaiEncore dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/01/2006, 15h12

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