Announcement

Collapse
No announcement yet.

TTreeView OnScroll-Ereignis

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TTreeView OnScroll-Ereignis

    Ich möchte beim Scrollen in einem TTreeView-Control bestimmte Aktionen ausführen, finde aber keine OnScroll-Methode für dieses Control.<br><br>
    Wie kann ich mein Problem lösen?

  • #2
    Hallo Christian,<br>ich schlage vor, Du erzeugst einen TTreeview Nachfahren und wertest die WM_VSCROLL und WM_HSCROLL Botschaften aus.<br>Hier ein Beispiel:<br>
    <pre>
    <font size="2" face="Verdana Ref">unit JSScrollTreeView;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    ComCtrls;

    type
    TJSScrollTreeView = class(TTreeView)
    private
    { Private-Deklarationen }
    FOnVScroll: TNotifyEvent;
    FOnHScroll: TNotifyEvent;
    procedure WMVSCROLL(var Msg : TMessage); message WM_VSCROLL;
    procedure WMHSCROLL(var Msg : TMessage); message WM_HSCROLL;
    procedure SetOnVScroll(const Value: TNotifyEvent);
    procedure SetOnHScroll(const Value: TNotifyEvent);
    protected
    { Protected-Deklarationen }
    public
    { Public-Deklarationen }
    published
    { Published-Deklarationen }
    property OnVScroll : TNotifyEvent read FOnVScroll write SetOnVScroll;
    property OnHScroll : TNotifyEvent read FOnHScroll write SetOnHScroll;
    end;

    procedure Register;

    implementation

    procedure Register;
    begin
    RegisterComponents('Mycomps', [TJSScrollTreeView]);
    end;

    { TJSScrollTreeView }

    procedure TJSScrollTreeView.SetOnHScroll(const Value: TNotifyEvent);
    begin
    FOnHScroll := Value;
    end;

    procedure TJSScrollTreeView.SetOnVScroll(const Value: TNotifyEvent);
    begin
    FOnVScroll := Value;
    end;

    procedure TJSScrollTreeView.WMHSCROLL(var Msg: TMessage);
    begin
    inherited;
    If Assigned(FOnHScroll) then
    FOnHScroll(Self);
    end;

    procedure TJSScrollTreeView.WMVSCROLL(var Msg: TMessage);
    begin
    inherited;
    If Assigned(FOnVScroll) then
    FOnVScroll(Self);
    end;

    end.</font>
    </pre>
    <br>:-) Jens Schuman

    Comment

    Working...
    X