IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

listview - violation d'acces


Sujet :

Composants VCL Delphi

  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 011
    Points : 2 078
    Points
    2 078
    Par défaut listview - violation d'acces
    Bonjour,
    J’ai un problème de violation d’accès avec une listview. J’ai une solution mais j’aimerai comprendre (et apprendre - turbo Delphi – XP SP3).

    Je remplis une listeview avec le nom et le label des lecteurs de CD/DVD disponibles.
    Quand l’utilisateur sélectionne un lecteur, son nom est recopié dans un tedit avec le code suivant sur OnSelectItem
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TFormMajcd.ListViewLecteursSelectItem(Sender: TObject;
      Item: TListItem; Selected: Boolean);
    begin
       FormMajcd.EditLecteurSelectionne.Text := FormMajcd.ListViewLecteurs.Selected.Caption 
    end;
    ça marche la première fois, mais si on clique ensuite sur un autre lecteur dans la listeview il y a une violation d’accès.

    Par contre si la même ligne de code est dans l’événement onClick ça marche parfaitement. A chaque fois qu’un lecteur est sélectionné dans la listeview il s’affiche dans le tedit.

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TFormMajcd.ListViewLecteursClick(Sender: TObject);
    begin
     FormMajcd.EditLecteurSelectionne.Text := FormMajcd.ListViewLecteurs.Selected.Caption ;
    end;
    Pourriez vous m’expliquer pourquoi.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Lors de la sélection d'un élément de la liste, l'événement OnSelectItem est au plus déclencher 2 fois.
    La première fois pour l'élément qui perd la sélection et l'autre pour l'élément qui l'obtient.

    Personnellement j'implémente comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TFormMain.ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    begin
      if Assigned(Item) then
      begin
        if Selected then
          // Elément obtenant la sélection
        else
          // Elément perdant la sélection 
      end;
    end;
    Avec:
    • Sender: le TListView concerné
    • Item: l'élément concerné
    • Selected: Etat de sélection de l'élément


    @+ Claudius.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 011
    Points : 2 078
    Points
    2 078
    Par défaut Listview on select item
    Bonsoir,
    ça marche ! merci.
    J'ignorais qu'il y avait également un évenement pour l'item désélectionné.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ReportPrinterDialog (QR2) : violation d'accès..
    Par Harry dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/12/2004, 14h04
  2. [XMLDocument] Violation d'accès
    Par xant dans le forum Composants VCL
    Réponses: 8
    Dernier message: 29/09/2004, 15h39
  3. requete / violation d'accès
    Par marie253 dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/08/2004, 13h29
  4. Violation d'acces apres Execute
    Par SegmentationFault dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 10/08/2004, 16h23
  5. Violation d'accès apres Close
    Par SegmentationFault dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/07/2004, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo