Autor Beitrag
csigg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 706

WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
BeitragVerfasst: Di 05.04.05 11:45 
ich brauch ein OnScroll Event oder sowas ähnliches für mein TListView, aber sowas gibts hier nicht, kann mir jemand sagen wie ich mir ähnlich weiterhelfen kann??
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Do 07.04.05 14:55 
Hallo,

mit einer Suche nach "WM_VSCROLL" müsstest Du einen Ansatz für Deine Problemlösung finden.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
csigg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 706

WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
BeitragVerfasst: Fr 08.04.05 13:35 
Ich hab nur das hier gefunden,
ausblenden Delphi-Quelltext
1:
SendMessage(ListBox1.Handle,WM_VSCROLL,SB_BOTTOM,0);					

Ich will aber abfragen ob grad gescrollt wird.
Kann ich über das WM_VSCROLL auch ne Abfrage erstellen??
csigg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 706

WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
BeitragVerfasst: Fr 08.04.05 13:51 
Nachtrag zu oben:

ich sollte das irgendwie in mein Form reinbekommen, das immer wenn man im ListView Scrollt, sich die ansicht aktualisiert.
hab im Moment kein plan wie ich das machen soll.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 08.04.05 21:15 
Hallo,

- welchen ViewStyle benutzt Du im ListView? vsReport oder ...?
- was willst Du erreichen mit der Aktualisierung?

Also ich gehe jetzt mal von vsReport aus.
Du musst folgende Aktionen des Anwenders berücksichtigen die zu einem Scrollvorgang führen.
1. Mausrad = WM_MOUSEWHEEL
2. Benutzung der senkrechten Scrollleiste = WM_VSCROLL
3. und waagerechte Scrollleiste = WM_HSCROLL
4. Cursor-Tasten, PageDown, PageUp, Pos1, Ende = in onKeyPress
5. und alle anderen Tasten die auch zum Scrollen führen,
weil man ja über die Eingabe eines Anfangszeichen der Item-Caption zu diesem Item scrollen kann.

Hier der Code um Mausrad und Scrollleiste Punkt 1. - 3. zu erkennen.
Ich hab mal WM_HSCROLL auskommentiert.
Den Code entsprechend des Beispiels an die richtigen Stellen in deine Unit einbauen.
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
//...
  private
    { Private-Deklarationen }
   ListView1Proc : TWndMethod;
  procedure ListView1WindowProc(var Message: TMessage);
//...
implementation

{$R *.DFM}

procedure TForm1.ListView1WindowProc(var Message: TMessage);
begin
  ListView1Proc(Message);
  if ((Message.Msg = WM_VSCROLL) {or (Message.Msg = WM_HSCROLL)} or
      (Message.msg = WM_MOUSEWHEEL)) then
    begin
    //Hier kommt dein Code rein
    //dieses Beispiel gibt Dir die Caption des ersten sichtbaren Items aus
    if ListView1.Items.Count > 0 then//zur Fehlervermeidung
      Label1.Caption := 'Gescrollt ! '
                        +'TopItem.Caption ist jetzt : '
                        +ListView1.TopItem.Caption;
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ListView1Proc := ListView1.WindowProc;
  ListView1.WindowProc := ListView1WindowProc;
end;
//...
end.


Die weiteren Punkte 4. u. 5. kannst Du im ListView1onKeyPress bearbeiten.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
csigg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 706

WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
BeitragVerfasst: Mo 11.04.05 11:26 
hat sich erledigt, die anforderungen an mein Programm haben sich geändert.