Geschwindigkeit beim Scrollen



  • Hallo,

    nachdem ich das mit dem Drag&Drop nun schön am laufen habe, auch habe ich mir hier im Forum (die Suche machts möglich 🙂 ) die Infos zusammengesucht um in
    meinen Listboxen beim Ablegen eines Drag-Elements nach oben oder unten zu scrollen.

    //---------------------------------------------------------------------------
    void __fastcall TfrmTPOemployeedeploy::lstOperationsDragOver(TObject *Sender, TObject *Source,
    	  int X, int Y, TDragState State, bool &Accept) {
    
    	TJvListBox* DragListBox = dynamic_cast<TJvListBox*>(Sender);
    
    	Accept = IsDragObject(Source);
    
    	if (Y >= DragListBox->ClientHeight - 1) {
    		DragListBox->Perform(WM_VSCROLL, SB_BOTTOM, 0);
    	}
    	else if (Y <= 1) {
    		DragListBox->Perform(WM_VSCROLL, SB_TOP, 0);
    	}
    }
    //---------------------------------------------------------------------------
    

    Nur scrollt die ganze Sache doch sehr schnell, bzw. es scheint einfach ein Sprung an den Anfang oder Ende zu sein.
    Kann ich die Scrollgeschwindigkeit für die Listboxen verändern?

    Grüße Netzschleicher



  • Schau dir die Parameter für WM_VSCROLL an... SB_LINEDOWN oder SB_PAGEDOWN suchst du wohl?



  • Hallo,

    SB_LINEDOWN bzw. SB_LINEUP hatte ich mittlerweile auch schon versucht. Damit ist es etwas besser. Aber es scrollt, um nicht zu sagen springt, ja immernoch zeilenweise. Ich dachte an eine Möglichkeit des Pixelweise scrollen, so eine Art smothscrolling.



  • Dann kannst du direkt SetScrollPos bzw. die neuere SetScrollInfo benutzen.


Anmelden zum Antworten