AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bei TShellTreeView scrollen erkennen

Ein Thema von Flogo · begonnen am 12. Aug 2003 · letzter Beitrag vom 12. Aug 2003
Antwort Antwort
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#1

Bei TShellTreeView scrollen erkennen

  Alt 12. Aug 2003, 10:27
Tachchen,
Ich versuch ein Programm zu schreiben, dass die Verteilung des Festplattenplatzes auf die Ordner übersichtlich anzeigt (ich will wissen warum meine Platten dauernd voll sind).
Dazu hab ich ein ShellTreeView genommen und Progressbars daneben gestellt. Mein Problem bei der Sache ist folgendes:
Wie kann ich erkennen wie weit die ShellTreeView runtergescrollt ist also welcher Index zu welcher Progressbar gehört?
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: Bei TShellTreeView scrollen erkennen

  Alt 12. Aug 2003, 10:40
TopItem gibt erstmal den ersten sichtbaren Eintrag an.

Wird das TreeView gescrollt so wird eine WM_VSCROLL-Nachricht abgeschickt, die du durch einen Hook via WindowProc mithören kannst.

Falls das noch nicht Hilft gib laut!
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#3

Re: Bei TShellTreeView scrollen erkennen

  Alt 12. Aug 2003, 12:27
*LAUT*
Ok das mit TopItem hat funktioniert (thx) aber wie geht das mit dem Hook
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#4

Re: Bei TShellTreeView scrollen erkennen

  Alt 12. Aug 2003, 14:06
Zu früh gefreut Es schien alles zu klappen aber mir ist aufgefallen, dass die Indizes nicht mehr stimmen wenn man einen Ordner mal "ausgeklappt" hat und dann wieder schliest
Code:
[u]Zustand 1:[/u]

Im Bild:           Im Prog:

+C:\                 C:\
 |
 +Programme         C:\Programme
 | |
 | +POrdner1         C:\Programme\POrdner1
 | |
 | +POrdner2         C:\Programme\POrdner2
 |
 +Windows           C:\Windows

[u]Zustand 2:[/u]

+C:\                 C:\
 |
 +Programme         C:\Programme
 |
 +Windows           C:\Programme\POrdner1
   |           
   +WOrdner1         C:\Programme\POrdner2
   |                     
   +WOrdner2         C:\Windows
Ich hoffe jemand versteht das gekrackel
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#5

Re: Bei TShellTreeView scrollen erkennen

  Alt 12. Aug 2003, 14:17
Erstmal noch ein anderer Weg zur Lösung.
Wie wär es vielleicht mit selberzeichnen neben den Einträgen!


nun zum Hook:

Entweder du Leitest das TShellTreeView-Control ab und überschreibst den Message-Handler


oder
du Hook's (Hack's dich an den Message-Handler an)

Delphi-Quellcode:
  TMyForm = clas
  ...
  private
    pOldShlTree : TWndMethod; // new
    procedure ShlTree(var Message: TMessage);
  
procedure TMyForm.FormCreate(...);
begin
  ...
  pOldShlTree := tvwShlTree.WindowProc; // new
  tvwShlTree.WindowProc := ShlTree;
  ...
end;

procedure TMyForm.ShlTree(var Message: TMessage);
begin
  pOldShlTree(Message);
  with Message do
    case Msg of
         WM_VSCROLL:
           ...; // wenn man den wParam auswertet kann man noch steuern
// wann neu ausgerichtet werden soll
    end;
end;
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#6

Re: Bei TShellTreeView scrollen erkennen

  Alt 12. Aug 2003, 14:38
Habs immer noch nicht verstanden Mein Code sieht jetzt so aus
Code:
procedure TForm1.ShlTree(var Message: TMessage);
begin
  if Message.Msg = WM_VSCROLL then ShowProgress;
  inherited;
end;
aber er sagt schon beim starten "unable to insert item"
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#7

Re: Bei TShellTreeView scrollen erkennen

  Alt 12. Aug 2003, 14:59
Erst mal hab ich oben ein kleine Berichtigung gemacht! Vielleicht ändert das schon manches! Wenn nicht wäre ein wenig mehr info hilfreich !
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#8

Re: Bei TShellTreeView scrollen erkennen

  Alt 12. Aug 2003, 15:34
Yep das wars danke hätte mir eigentlich denken können dass ein inherited bei einer ersetzten Methode nicht geht
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz