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

cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 3 oct. 2017 à 23:45 - Dernière réponse : cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention
- 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 

5 réponses

Répondre au sujet
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 3 oct. 2017 à 23:55
0
Utile
2
Bonjour,

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


cordialement,
cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 4 oct. 2017 à 18:21
bonjour,
perdu !!,
non, ça marche pas, j'avais essayé avant de mettre un post
merci !! et bon codding
cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 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
Cirec 4191 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 4 oct. 2017 à 22:01
0
Utile
1
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,
cs_sagitarius 45 Messages postés samedi 26 août 2017Date d'inscription 3 décembre 2017 Dernière intervention - 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.