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

Delphi Discussion :

[D7] tlistview ajouter un item


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Par défaut [D7] tlistview ajouter un item
    Bonjour,

    J'ai un problème de base et j'en perd mon latin.
    J'ai un tlistview, je crée dynamiquement 4 colonnes et je charge 3 items dans ma liste. Cette opération se fait dans une fonction qui se contente d'un clear des items puis de faire les add nécessaire.

    Cela fonctionne très bien la première fois cependant, la seconde fois, ma liste contient deux fois mes items comme si mon clear n'avait pas été pris en compte. J'ai essayer les updates, les deux types de clear, les différentes méthodes add et même un insert(0) mais rien n'y fait.

    Au désespoir, j'ai cherché sur le net, voir un patch pour delphi 7 que je n'ai pas trouvé.

    J'en appel aux forces vives du forum. Quelqu'un peut il m'aider ?

    Merci.

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Normalement, MyTlistview.Clear aurait du faire l'affaire ....

  3. #3
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Si ce n'est pas le list view qui est en tord, as-tu pensé que ce pouvaient être tes données ? Comment le remplis-tu, ton list view ?

    (un moyen simple d'être fixé : enlève le Clear complètement et regarde ce que ça donne )
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Par défaut mon code pour mieux comprendre
    Bonjour,

    Voici mon code :

    procedure TFrame_ListURL.LoadList(Nom: String);
    var
    fichier : String;
    TS : TStringList;
    TS2 : TStringList;
    Idx, Idx2 : Integer;
    New : TListItem;
    Newc : TListColumn;
    bool : Boolean;
    begin // Appel du chargement du fichier de donnée correspondant

    bool := True;

    fichier := TUtil.Instance().Transforme_Fichier(Nom);
    If Not FileExists(fichier) Then
    Exit;

    TS := TStringList.Create;
    TS2 := TStringList.Create;
    TS.LoadFromFile(fichier);
    For Idx := 0 To TS.Count - 1 Do
    Begin
    TS2.Text := StringReplace(TS[Idx], ';', #13#10, [rfReplaceAll]);
    If Idx = 0 Then
    Begin
    // Chargement de l'entête
    ListURL.Columns.Clear;
    For Idx2 := 0 To TS2.Count - 1 Do
    Begin
    Newc := ListURL.Columns.Add;
    Newc.Caption := Copy(TS2[Idx2], 0, Pos(':', TS2[Idx2]) - 1 );
    Newc.Tag := TUtil.Instance().TypeStrToInt( Copy(TS2[Idx2], Pos(':', TS2[Idx2]) + 1, Length(TS2[Idx2])) );
    Newc.Width := TUtil.Instance().TypeIntToWidth(Newc.Tag);
    End;
    End Else Begin
    // Chargement des données
    if bool then
    begin
    While ListURL.Items.Count > 0 Do
    Begin
    ListURL.Items[0].Delete;
    Sleep(10);
    End;
    //ListURL.Items.Clear;
    bool := false;
    end;
    New := TListItem.Create(ListURL.Items); //ListURL.Items.Add;
    ListURL.Items.AddItem(New);
    For Idx2 := 0 To TS2.Count - 1 Do
    Begin
    If Idx2 = 0 Then
    New.Caption := TS2[Idx2]
    Else
    New.SubItems.Add(TS2[Idx2]);
    End;
    End;
    End;
    TS.Free;
    TS2.Free;

    end;

    Comme on peut le voir, j'ai essayer également avec du delete plutôt que du clear mais sans plus de succès.

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/08/2006, 20h35
  2. [Question] Ajouter un item dans une ListBox
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 29/12/2005, 19h38
  3. [TListView] Ajouter un icône de tri dans le header
    Par phplive dans le forum Composants VCL
    Réponses: 1
    Dernier message: 25/09/2005, 13h07
  4. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03

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