Eviter une erreur des tlistview

5/5 (3 avis)

Snippet vu 5 480 fois - Téléchargée 26 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
-
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
-
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
-
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.