Hello, it's me again.
Je suis au bord du désespoir : j'ai besoin d'un TShellTreeView, à qui je demande bêtement de m'afficher les fichiers des dossiers, un truc tout simple -- enfin, je croyais...
Au début ça commence bien : je clique sur test1, il s'ouvre et je vois son contenu. Bien.
Je clique sur test2, ça referme test1 et ça m'affiche le contenu de test2, encore bien.
Je clique sur test3, ça referme test2 et ça m'affiche le contenu de test3, toujours bien.
Je clique sur test4, ça referme test3 et là, bim bam boum, au lieu de sélectionner le nom du dossier (comme les fois précédentes), ça sélectionne le premier fichier de sa liste...
Pourquoi ? Mais my God pourquoi ?
Il y a peut-être une blagounette dans le code ci-dessous, mais je n'arrive pas à la trouver, d'autant plus qu'en cliquant juste sur les triangles à gauche des noms des dossiers, ça a un comportement bizarre : des fois ça s'ouvre du 1er coup, des fois non.
Et j'ai mis ce bout de code car le comportement automatique ne fonctionne pas comme je le voudrais (pas de collapsing automatique, par ex.)
Testé avec la wonderful 1.8.2...
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 procedure TForm1.tvListMouseDown(Sender: TObject; Button: TMouseButton; // tvList c'est le TShellTreeView Shift: TShiftState; X, Y: Integer); var aNode: TTreeNode; begin PreviousNode := CurrentNode; aNode := TTreeview(sender).GetNodeAt(X, Y); // il en manque mais ça n'a rien à voir CurrentNode := aNode; if CurrentNode <> PreviousNode then begin tvList.BeginUpdate; if not CurrentNode.Expanded then begin CurrentNode.Selected := True; CurrentNode.Expand(False); if PreviousNode <> nil then if PreviousNode.Expanded then PreviousNode.Collapse(False); end; tvList.EndUpdate; end;
Ah, ça ne se voit pas sur ces copies d'écran réduites à l'essentiel, mais j'ai positionné les scrollbars à ssAutoBoth dans l'EDI et si j'en parle, c'est parce que je ne les vois jamais...
EDIT : j'ai enlevé "et peut-être" dans le tag du titre, le problème est présent également dans XP sp2...
Par contre, le ssAutoBoth des scrollbars du TShellTreeView a l'air d'y fonctionner correctement.
/EDIT
Partager