![]() |
Scrollen im TreeView
Hi Leute,
folgendes Problem: Ich habe ein TreeView mit Node-Einträgen. Wenn ich ein Node in einen anderen Knoten verschieben möchte kann es sein, das der Zielknoten im nicht sichtbaren Bereich den TreeView liegt. Nun habe ich mir gedacht, dass wenn ich einen eintrag verschieben will und ich an den oberen und unteren Rand des TreeView stoße diesen automatisch scrollen lasse. Der Code lautet wie folgt:
Delphi-Quellcode:
Der Punkt ist, das so nichts passiert! Wo steckt mein Problem?
procedure TKonfForm.TreeView1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean); var D:TTreeNode; Begin if StopDrag then begin TreeView1.EndDrag(False); Accept:=False; exit; end; d:=TreeView1.GetNodeAt(x,y); try Accept:=(Source is TTreeView) and (d<>Nil) and (d.Level>0) and (PNodeData(d.Data).Typ = Flotte) and (PNodeData(TreeView1.Selected.Data).Typ = Fahrzeug); except Accept := False; end; CanDragAccept:=Accept; // wenn oben dann hochscrollen IF (y < 2) then begin TreeView1.ScrollBy(0, 2); TreeView1.Realign; end; // unten auch scrollen IF (y > TreeView1.ClientHeight - 2) then begin TreeView1.ScrollBy(0, -2); TreeView1.Realign; end; end; Gruß oki |
Re: Scrollen im TreeView
das ganze ins onmousemove machen sollte vielleicht gehen. Aber ich glaub das ganze hatten wir hier schonmal. Versuchs mal mit der Suche
|
Re: Scrollen im TreeView
Ich such und probier mal. Melde mich.
Dank oki |
Re: Scrollen im TreeView
Hi,
Suche hats gebracht! Habe in einem anderen Beitrag folgende Lösung gefunden:
Delphi-Quellcode:
Damit klappt es.
SendMessage(TreeView1.Handle,
WM_VSCROLL, SB_LINEDOWN, 0); Scrollby bewegt wohl nur den sichtbaren Teil und löst kein Scroll-Ereignis aus. Es ist sinnvoll danach ein Invalidate aufzurufen (ich hatte Verzerrungen in der Anzeige). Gruß oki |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz