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 :

[Canvas] Listbox, couleur et multiselect


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 99
    Points : 126
    Points
    126
    Par défaut [Canvas] Listbox, couleur et multiselect
    Salut,

    j'utilise une listbox et je voudrais que lorsque l'on sélectionne 2 ou + éléments et que l'on appuie sur un bouton, il se dessine un rectangle autour (éventuellement un fond grisé)... Le problème est le suivant :

    -> Comment récupérer les coordonnées des éléments sélectionnés ???
    -> Dessiner le rectangle d'accord, mais comment l'effacer (et redessiner ce qu'il y a en dessous.)???
    -> Dans le cas ou je mets un fond, comment donner réécrire le texte présent en dessous ???


    Merci d'avance
    A+---------------> Nat <-------------------

  2. #2
    FWS
    FWS est déconnecté
    Inactif
    Inscrit en
    Juillet 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    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
    30
    31
    procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    var marge:integer;
    begin
     
      if index mod 2<>1 then begin
                              Listbox1.canvas.brush.color:=clwhite;
                              Listbox1.canvas.fillrect(rect);
                              end else begin
                                       Listbox1.canvas.brush.color:=$00F4F3EE;
                                       Listbox1.canvas.fillrect(rect);
                                       end;
      Listbox1.canvas.textout(rect.left+30,rect.top+2,listbox1.items[index]);
     
      if (odSelected in state) then begin
                                    Listbox1.canvas.brush.color:=$00F8D1C5;
                                    Listbox1.canvas.fillrect(rect);
                                    Listbox1.canvas.font.color:=clblue;
                                    Listbox1.canvas.font.style:=Listbox1.canvas.font.style +[fsbold]+[fsitalic];
                                    Listbox1.canvas.textout(rect.left+30,rect.top+2,listbox1.items[index]);
                                    end;
     
      marge := (Rect.Bottom - Rect.Top - imageList1.Height) div 2;
      imagelist1.Draw(Listbox1.canvas, Rect.Left + 4, Rect.Top + marge, Index);
     
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     ListBox1.MultiSelect := True;
    end;
    Utilise la touche F1 pour le multiselect.

    télécharger le source : http://aediumprogrammation.free.fr/listboxfun.zip

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 99
    Points : 126
    Points
    126
    Par défaut
    Excellent, je crois que je vais pouvoir en faire quelque chose... Merci
    A+---------------> Nat <-------------------

  4. #4
    FWS
    FWS est déconnecté
    Inactif
    Inscrit en
    Juillet 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 16
    Points : 18
    Points
    18
    Par défaut

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

Discussions similaires

  1. listbox multi-colonnes & multiselect - Récupération données
    Par shadjire dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 02/07/2014, 14h59
  2. [C#] ListBox & Couleur
    Par Asiany dans le forum Windows Forms
    Réponses: 10
    Dernier message: 10/10/2006, 09h13
  3. [C#] récupérer une multiselection d'une listBox
    Par Nycos62 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/12/2005, 14h13
  4. [MFC][ListBox] Couleur du texte
    Par r0d dans le forum MFC
    Réponses: 8
    Dernier message: 08/06/2005, 18h41
  5. Pb multiselect listbox builer C++
    Par Donniebrasko dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/11/2004, 16h37

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