Eviter une erreur des tlistview

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 777 fois - Téléchargée 28 fois

Contenu du snippet

Ce code permet d'éviter l'erreur qui se produit lorsque l'utilisateur clique dans un TListView, qu'il n'y a aucun élément et que le code de l'événement OnClick se sert des propriétés de l'élément selectionné.

Il est à placer au debut de la procedure OnClick de la ListView, comme ci-dessous:

Source / Exemple :


procedure TForm1.ListView1Click(Sender: TObject);
begin
  If ListView1.ItemIndex <> -1 then
  begin
    // vos instructions
  end;
end;

Conclusion :


Voila une mise à jour suite au différentes remarques productives qui ont été postées :D

A voir également

Ajouter un commentaire Commentaires
ffert Messages postés 63 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 15 décembre 2009
29 sept. 2003 à 21:57
C'est vraie que c'est pas mal tout ça...
Mais dans mes bon vieux cours de programmations, on me disait toujours qu'il fallait éviter les goto et les exit (dans les procédures ou les boucles)... Pour programmer "proprement"... (contre-indiqué si l'on doit faire une libération de mémoire aprés le traitement par exemple...)

Alors c'est vrai que j'ai plus l'habitude de les utiliser.....

Mais merci beaucoup.
cs_costello Messages postés 136 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 15 février 2006
29 sept. 2003 à 21:34
il y a encore beaucoup plus facile, fiable et marchant avec tout type de liste/autre:

if TXList.ItemIndex = -1 then exit;

ça empêche toute erreur
ffert Messages postés 63 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 15 décembre 2009
29 sept. 2003 à 07:37
Salut,
Je ne suis pas tout à fait d'accord avec ce que tu écris...
Effectivement, s'il n'y a pas d'élément on obtiendra une erreur. Mais dans ton cas précis, si tu as par exemple 2 lignes et que l'utilisateur essaye de clicker sur la 4ème ligne : cela va déclencher une erreur.....

J'utilise autre chose : tout d'abord : sur l'évènement (onselectitem)
procedure TForm1.ListView1onselectitem(Sender: TObject,......);
begin
if ListView1.Items.Selected <> Nil then
begin
// vos instructions
end;
end;

Si l'item sélectionné = nil : pas d'item sélectionné... on a intercepter l'erreur avant qu'elle ne se produise...

J'espère que ça pourra t'aider. (j'ai fait tout ça de tête donc j'espère que je ne suis pas planté... mais dans l'esprit c'est ça...)
à+

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.