Désélectionner une ligne de mon listview [Résolu]

Messages postés
64
Date d'inscription
samedi 26 août 2017
Dernière intervention
7 août 2018
- 3 oct. 2017 à 23:45 - Dernière réponse :
Messages postés
64
Date d'inscription
samedi 26 août 2017
Dernière intervention
7 août 2018
- 5 oct. 2017 à 00:40
Bonjour à tous,
Avec cette procédure, je sélectionne la ligne de mon Tlistview lorsque je coche la case à cocher.
Mais, si je décoche la case, j'aimerais ne plus avoir la ligne sélectionnée.
J'ai pas trouvé
Quelqu'un peut-il m'aider ?,
Cordialement.

procedure TForm1.ListViewMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var
  Item: TListItem;
  i, j: Integer;
begin
Item := ListView.GetItemAt(X, Y);
  if Item <> nil then
    if ListView.Selected <> Item then
      begin
        ListView.Selected := Item;
      end;
//      Else
End;
Afficher la suite 

Votre réponse

5 réponses

Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
- 3 oct. 2017 à 23:55
0
Merci
Bonjour,

de tête comme ça je dirais:
ListView.Selected := nil;


cordialement,
Messages postés
64
Date d'inscription
samedi 26 août 2017
Dernière intervention
7 août 2018
- 4 oct. 2017 à 18:21
bonjour,
perdu !!,
non, ça marche pas, j'avais essayé avant de mettre un post
merci !! et bon codding
Messages postés
64
Date d'inscription
samedi 26 août 2017
Dernière intervention
7 août 2018
- 4 oct. 2017 à 20:45
bonsoir Cirec;

J'ai trouvé, mais c'est pas vraiment superbe
      Else
      begin
        Item := nil;
        ListView1.Selected := Nil;
      end;

merci pour ton aide, suite à ta réponse, j'ai recherché et trouvé plus ou moins une solution
MERCI À TOI !!!!!
Commenter la réponse de Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
- 4 oct. 2017 à 22:01
0
Merci
re,

ben je viens de faire le teste et ça fonctionne bien chez moi avec D7 !!!

//1 TListView contenant 26 Items de A à Z
//avec CheckBoxes et 
//Multiselect à True ou False  (n'a aucune incidence)
//1 TMemo
//2 TButton

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListView1.Selected := ListView1.Items[1];
  ListView1.Selected := ListView1.Items[2];
  ListView1.SetFocus;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ListView1.Selected := nil;
  ListView1.SetFocus;
end;

procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin  
  Item.Checked := Selected;
  if Selected then
    Memo1.Lines.Add('Selected: '+Item.Caption)
  else
    Memo1.Lines.Add('Unselected: '+Item.Caption);
end;

procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
begin
  Item.Selected := Item.Checked;
end;



Cordialement,
Messages postés
64
Date d'inscription
samedi 26 août 2017
Dernière intervention
7 août 2018
- 5 oct. 2017 à 00:40
bonjour Cirec;
Un Immense MERCI;
c'est mille fois mieux que ma procédure OnMousedown !!!!
et avec un CheckBox dans la colonnne [0];
OnClick du CheckBox je sélectionne tous mes Items,
et avec la procédure ListView1CustomDrawItem
if CheckBox1.Checked=true then
  begin
    Sender.Canvas.Brush.Color := clHighlight;
  end;

tous les items sont de couleur de fond clHighlight.

Mille fois merci
Cordialement
Commenter la réponse de Cirec

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.