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

Langage Delphi Discussion :

Comment vider un treeview avant de le remplir


Sujet :

Langage Delphi

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Par défaut Comment vider un treeview avant de le remplir
    Bonjour,

    J'ai un treeview qui est déjà rempli
    Je veux changer le type d'arborescence avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    procedure TInfo.RadioGroup1Click(Sender: TObject);
    var
      i: integer;
    begin
      TV.Items.Clear;
      TV.Canvas.Refresh;
      i:= RadioGroup1.ItemIndex;
      case i of
        -1: exit;
        0 : begin
            ReadComponentResFile(CurArboTypeFile+CurBathFile+'.dat',TV);
            StatusBar.SimpleText := CurBathFile;
        end;
        1: begin
            ReadComponentResFile(CurArboTypeFile+CurFamilliesFile+'.dat',TV);
            StatusBar.SimpleText := CurFamilliesFile;
        end;
      end;
      TV.FullExpand;
    end;
    Si le treeview est vide la première action se déroule bien
    Au changement de RadioGroup1.ItemIndex si le treeview a déja été rempli je déclenche une erreur Violation d'accès

    Toutes vos propositions seront les bienvenues pour corriger le tir

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 071
    Par défaut
    ReadComponentResFile !
    Ah oui, tu n'y va pas en douceur !
    Tu n'as rien de plus léger pour stocker ton TV ?
    Tu pourrais utiliser TTreeView.SaveToFile et LoadFromFile, cela donne un fichier bien plus simple à comprendre !

    Je suppose que tu as tester séparément chaque fichier et tous fonctionne !

    au pire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    begin
      TV2 := TTreeView.Create(Self);
      TV2.Parent := TV.Parent;
      TV2.SetBounds(TV.BoundRect);
      TV.Free();
      TV := TV2;
     
      ...
     
    end;
    tu n'avais pas déjà posé la question "Access violation avec treeview" et ne t'avais-je pas déjà conseillé de le faire manuellement comme dans Gestion complète d'une TreeView: ajout de noeuds, records et sauvegarde du tout
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Par défaut
    Merci c'est en effet plus simple !

    Mais je suis surpris qu'il n'existe pas sur un treeview une barre de défilement !
    Comment faire pour que l'arborscence soit consultable avec une barre de défilement ?

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 071
    Par défaut
    Normalement c'est automatique !
    Dans une application à bordel, j'ai un TTreeView, dès que j'ai un élément trop grand ou bcp d'items en vertical, les ScrollBars sont là, j'ai même un Hint sur les Items trop long !

    cette application de test a été compilé sur D7 en 2010 et exécuté sur XP (autre poste que celui de la compil)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Par défaut
    Bon j'ai trouvé pourquoi la barre de défilement ne s'affiche pas :
    Le treeview est dans un frame que j'appelle de la form! Je l'ai placé sur la form et ça marche !
    Bizare bizare...

Discussions similaires

  1. comment vider une base de donnée
    Par caps_corp dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 21/04/2004, 16h54
  2. [vb.net] Comment vider un buffer ?
    Par mdc dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/12/2003, 15h43
  3. comment vider un schema
    Par otb82 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/10/2003, 13h36
  4. comment vider une chaine de caractère
    Par gaut dans le forum C
    Réponses: 13
    Dernier message: 12/09/2003, 11h30
  5. Comment vider un dossier ?
    Par Zinoc dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/06/2002, 14h14

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