AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

Ein Thema von delphitrixer · begonnen am 3. Nov 2011 · letzter Beitrag vom 10. Nov 2011
Antwort Antwort
Seite 2 von 2     12
delphitrixer

Registriert seit: 12. Aug 2004
51 Beiträge
 
Delphi 2010 Professional
 
#11

AW: VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

  Alt 9. Nov 2011, 09:15
Aber klar doch. Gerne!

Im Anhang mein kleines Test VST Projekt. Es hat eine VST mit ca. 60 Spalten mit dem ich so verschiedene Sachen an der VST ausprobiere.

Spalten können darin verschoben werden, allerdings scrollt eben nichts.
Angehängte Dateien
Dateityp: zip VST_Test.zip (22,9 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
435 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

  Alt 9. Nov 2011, 10:55
Wie es momentan für mich aussieht, wird im TVTHeader.HandleMessage (bei WM_NCMOUSEMOVE) alles gecancelt, also müsste man vom TVTHeader ableiten und im Falle, daß noch gedraggt wird, Maßnahmen setzen. Der VST bekommt dann einen Header vom neuen Typ verpaßt (GetHeaderClass) - VST am besten auch gleich ableiten.
Habe heute zuwenig Zeit dafür, bin aber an der Lösung interessiert! Ich mach dann morgen weiter.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
delphitrixer

Registriert seit: 12. Aug 2004
51 Beiträge
 
Delphi 2010 Professional
 
#13

AW: VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

  Alt 9. Nov 2011, 11:21
Schon mal Danke für Deine aktive Unterstützung. Ich komme glaube ich selber wirklich nicht weiter und Deine Erläuterung hört sich für mich etwas kompliziert an.

Bin leider nicht so tief in der Materie drin, was Komponentenprogrammierung anbelangt.

Vielleicht können die Programmierer der VST das ja später in die VST übernehmen. Die VST ist ja ansonsten wirklich absolut unschlagbar was den Funktionsumfang anbelangt und die Performance ist phantastisch!

Bis später dann also und keine Eile. Bin froh, wenn jemand Unterstützung geben kann!
  Mit Zitat antworten Zitat
delphitrixer

Registriert seit: 12. Aug 2004
51 Beiträge
 
Delphi 2010 Professional
 
#14

AW: VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

  Alt 10. Nov 2011, 08:53
Wichtiger Nachtrag zu diesem Thread:

Mike Lischke, Besitzer der Website www.soft-gems.net und wohl Ur-Erfinder der VST hat mir noch diesen Tipp gegeben:

>Autoscrolling bekommt man eigentlich nur mit einem Timer hin. So ist es ja auch beim Knotendragging implementiert. Also wenn das Spaltenverschieben >beginnt muss auch ein Timer gestartet werden, der dann einige Male in der Sekunde tickt und dabei die aktuelle Mausposition checked. Wenn der >Pointer am Rand ist geht dann ein horizontales Scrolling los, am besten innen sehr langsam und dann immer schneller, je weiter man mit der Maus >rausgeht.
>
>Ich würde vielleicht mal den Header timer genauer ansehen. Der ist zwar für die NC leave detection gedacht, könnte aber gut auch dafür >funktionieren. Allerdings habe ich mit den derzeitigen Entwicklern darüber gesprochen, diesen Timer zu entfernen und mit Aufrufen über die >TrackMouseEvent API zu ersetzen. Weiß aber nicht, ob es jemand tatsächlich umsetzt (und wenn, dann ohnehin nur im 5.0er branch).

Ich glaube, mit einem Timer lässt sich das ganz gut lösen.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
435 Beiträge
 
Delphi 10.3 Rio
 
#15

AW: VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

  Alt 10. Nov 2011, 10:46
Ist das nicht genau die Stelle, über die ich oben spreche?
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
delphitrixer

Registriert seit: 12. Aug 2004
51 Beiträge
 
Delphi 2010 Professional
 
#16

AW: VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

  Alt 10. Nov 2011, 11:17
Ich habe es jetzt ehrlich gesagt nicht so verstanden und war mir nicht wirklich bewusst, dass Du vom selben Ansatz sprichst. Sorry!
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
435 Beiträge
 
Delphi 10.3 Rio
 
#17

AW: VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

  Alt 10. Nov 2011, 11:48
Ne, ist schon ok, wollte nur sichergehen. Das ist die Bestätigung, dass ich am richtigen Ende suche
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
delphitrixer

Registriert seit: 12. Aug 2004
51 Beiträge
 
Delphi 2010 Professional
 
#18

AW: VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

  Alt 10. Nov 2011, 15:13
Also ich habe jetzt eine funktionierende Lösung mit dem bereits diskutierten Timer implementiert.

Dazu auf dem Event OnHeaderDragging den Timer aktiviert und auf OnHeaderMouseUp wieder deaktiviert. Der Timer hat diesen einfachen Code hinterlegt:

Delphi-Quellcode:
procedure Tfrm_Form.tm_VSTScrollTimer(Sender: TObject);
var
  VSTPos: TPoint;
begin
  inherited;
  VSTPos := PanelEx1.ClientToScreen(Point(VST.left, VST.top));

  if Mouse.CursorPos.X > (VSTPos.X + VST.Width - 25) then
  begin
    VST.OffsetX := VST.OffsetX - 50;
  end;

  if Mouse.CursorPos.X < (VSTPos.X + 25) then
  begin
    VST.OffsetX := VST.OffsetX + 50;
  end;
end;
Klappt wunderbar! Das kann jetzt natürlich noch (wie Mike bereits geschrieben hat) ausgebaut werden, damit schneller und langsamer gescrollt wird, je weiter die Maus an oder über den Rand der VST gezogen wird.

Aber als Lösungsansatz auf jeden schnell und einfach mit wenig Code implementiert.

Danke ConnorMcLeod und Mike Lischke für die Hilfe und nötigen Gedankenanstösse!

Manchmal ist die Lösungs schon so einfach, dass man einfach nicht drauf kommt!
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
435 Beiträge
 
Delphi 10.3 Rio
 
#19

AW: VirtualTreeView (VST) AutoScroll beim verschieben von Spalten klappt nicht

  Alt 10. Nov 2011, 15:22
Passt gut!
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf