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

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

Votre réponse

5 réponses

Cirec 4225 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 24 juin 2018 Dernière intervention - 3 oct. 2017 à 23:55
0
Merci
Bonjour,

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


cordialement,
cs_sagitarius 53 Messages postés samedi 26 août 2017Date d'inscription 31 mai 2018 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 53 Messages postés samedi 26 août 2017Date d'inscription 31 mai 2018 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 4225 Messages postés vendredi 23 juillet 2004Date d'inscriptionModérateurStatut 24 juin 2018 Dernière intervention - 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,
cs_sagitarius 53 Messages postés samedi 26 août 2017Date d'inscription 31 mai 2018 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.