Görgetés dragdrop

Görgetés a DragDrop

Prompt hogyan görgetés az TreeView ha DragDrop. Ő görgetés bejön nekem, de a „junk” marad a fán. Még próbáltam csinálni újrarajzolás, még nem segít.

eljárás TMainForm1.T1DragOver (küldő, Forrás: TObject; X, Y: egész;
Állam: TDragState; var elfogadás: logikai érték);
kezdődik
if (Forrás TLsFileListView28) vagy (Forrás TDATreeView), akkor
Elfogadás: = true
más
kezdődik
Elfogadás: = false;
exit;
végén;
ha Y> T1.Height - Sb1.Height - 10 majd
T1.Perform (WM_VSCROLL, SB_LINEDOWN, 0)
más
ha Y <10 then
T1.Perform (WM_VSCROLL, SB_LINEUP, 0);
T1.Repaint;
végén;

T1: TDATreeView;
SB1: TScrollBar;
TDATreeView eltér a szokásos TreeView csak azért, mert lehetővé teszi, hogy DragDrop belül magukat.

És végig a második kérdést. Honnan tudom, hogy mi lesz a magassága a vízszintes gördítősáv alapértelmezés szerint az aktuális képernyő felbontás? És akkor meg kell tenni a láthatatlan csíkok formájában, és vigye magasság.

A második kérdés.
GetSystemMetrix SM_CXVSCROLL, SM_CYVSCROLL

és még nem próbáltam csinálni T.ScrollBy (DX, DY)?

frissítés sky3d - funkció úgynevezett GetSystemMetrics, a kívánt paramétert SM_CYHSCROLL

A késés nem segít. Milyen más javaslatok?

és itt a késés? Alvás próbált tenni valamit?

és ha teszik, ahogy ebben a példában a VB - a DragOver közé skrolliruem időzítő és az időzítőt?

Nem nem alszik. Próbáltam, hogy kötődik az időzítő mint ebben a példában. Most próbálom egyszerűen lefordítjuk a teljes mintát VB Delphi.

Szenvedett példát Delphi, 1-1. Ugyanez nonszensz kiderül :(.
Tudok küldeni egy képernyőképet ez érdekes. Be kell, hogy ne legyen lusta és telepíteni VB ellenőrzése érdekében ez a HOGYAN az eredeti.

jobb, ha kód jött

Fura. A változata a közös ellenőrzések joga van? A fa nem OwnerDraw? Nálam van a kód működik. Csak abban az esetben -, akkor próbálja helyettesíteni végre

PostMessage (T1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);

Köszönet mindenkinek, aki részt vett a megbeszélésen.
Sok szerencsét

Memória: 0,74 MB
Idő: 0.025 c