AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi VirtualStringTree: Falsche Spalte bei Doppelklick
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree: Falsche Spalte bei Doppelklick

Ein Thema von amigage · begonnen am 22. Dez 2009 · letzter Beitrag vom 5. Mär 2010
Antwort Antwort
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
270 Beiträge
 
Delphi 11 Alexandria
 
#1

VirtualStringTree: Falsche Spalte bei Doppelklick

  Alt 22. Dez 2009, 10:45
Hallo,

ich nutze seit Jahren das geniale VirtualTreeView.

Ich habe nach dem Update auf Delphi 2009 auch die Komponente neu installieren müssen.
Seitdem kann ich beim Doppelklick nicht mehr abfragen, in welcher Spalte sich der Cursor befindet.

Mein Lösung sah bisher so aus:

Delphi-Quellcode:
procedure TMainDlg.VSTDblClick(Sender: TObject);
var
  Node: PVirtualNode;
  Data: PTreeData; // meine Struktur
begin
  Node := VST.FocusedNode;
  if not Assigned(Node) then
    Exit;

  Data := VST.GetNodeData(Node);
  showmessage(IntToStr(VST.FocusedColumn)); // zur Anzeige der fokussierten Spalte

  Case VST.FocusedColumn of
    ...

  end;
end;
Gibt es eine neue Einstellung, die ich vorher aktivieren muss?

Vielen Dank, wenn mir jemand einen Tipp geben könnte.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#2

Re: VirtualStringTree: Falsche Spalte bei Doppelklick

  Alt 22. Dez 2009, 11:11
Hast du den GridSupport an?
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
270 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: VirtualStringTree: Falsche Spalte bei Doppelklick

  Alt 23. Dez 2009, 12:39
Danke für die schnelle Reaktion. Ich komme leider erst jetzt dazu

Was ist mit GridSupport gemeint? Ich finde eine solche Einstellung nicht. Oder soll es TreeOptions.PaintOptions = TreeOptions.PaintOptions - [toShowButtons] sein?

Folgende Einstellungen sind bei mir gesetzt:

Delphi-Quellcode:
TreeOptions
  AnimationOptions := []
  AutoOptions := [toAutoDropExpand,toAutoScrollOnExpand,toAutoTristateTracking,toAutoDeleteMovedNodes]
  MiscOptions := [toCheckSupport,toFullRepaintOnResize,toInitOnSave,toReportMode,toToggleOnDblClick,toWheelPanning]
  PaintOptions := [toShowHorzGridLines,toShowVertGridLines,toUseBlendedImages]
  SelectionOptions := [toExtendedFocus,toFullRowSelect,toCenterScrollIntoView]
  StringOptions := [toSaveCaptions,toAutoAcceptEditChange]
Ich hoffe, es hilft bei der Fehlersuche. Danke.

Nachtrag:
Ich dachte jetzt gerade, es liegt vielleicht am toToggleOnDblClick. Habe es deaktiviert, bringt aber auch nix.
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
270 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: VirtualStringTree: Falsche Spalte bei Doppelklick

  Alt 5. Mär 2010, 09:46
Hallo,

ich würde die Frage gern noch einmal nach vorn schieben wollen,
da ich bisher selbst noch keine Lösung gefunden habe.

Nutzt denn hier kaum jemand den VirtualStringTree?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: VirtualStringTree: Falsche Spalte bei Doppelklick

  Alt 5. Mär 2010, 10:48
Habe gerade mal ein Form mit einem neuen VST erstellt und ein OnDblClick Event definiert, welches mit den ColumnIndex der geklickten Spalte ausgibt. Das funktioniert soweit. Meine VST Version ist die aktuelle aus dem SVN.

Welchen Wert liefert denn FocusedColumn bei dir zurück?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
270 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: VirtualStringTree: Falsche Spalte bei Doppelklick

  Alt 5. Mär 2010, 13:23
Also bei mir gibt er bei VST.FocusedColumn immer 0 zurück. Ich nutze Version 4.8.6

Kannst Du Deine OnClick-Routine einmal hier posten, damit ich mir das einmal anschauen kann?

Besten Dank im voraus.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: VirtualStringTree: Falsche Spalte bei Doppelklick

  Alt 5. Mär 2010, 13:47
Hab dir einfach das Test-Projekt angehangen.

P.S.: Mir ist aufgefallen, dass wahrscheinlich dein Problem daher kommt, dass du evtl in der Column, in welche du klickst, keinen Text zum fokusieren hast und sich daher nix rührt.
Folgendes im OnDblClick-Event sollte da helfen:
VirtualStringTree1.Header.Columns.ColumnFromPosition(VirtualStringTree1.ScreenToClient(Mouse.CursorPos));
Angehängte Dateien
Dateityp: zip project1_697.zip (1,3 KB, 4x aufgerufen)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#8

Re: VirtualStringTree: Falsche Spalte bei Doppelklick

  Alt 5. Mär 2010, 14:51
Das kann auch passieren, wenn die Aufklicksymbole doppelt geklickert werden.
Diese befinden sich nicht in einer Spalte.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
270 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: VirtualStringTree: Falsche Spalte bei Doppelklick

  Alt 5. Mär 2010, 17:18
@Stevie:
Danke für den Tipp mit dem DBLClick-Event. Merkwürdigerweise stehen bei mir aber Werte in den einzelnen Zeilen bzw. Spalten. Unter Delphi 5 hatte ich bisher auch keine Probleme, nur das Delphi 2009 ziert sich.

Nach unzähligen Stunden des Vergleichens der Einstellungen Deines und meines Projekts bin ich zu zu keiner wirklichen Erkenntnis gekommen. Ich habe Optionen aktiviert/deaktiviert. Bei Deinem Projekt gab es keine Probleme, bei meinem kein erwartetes Ergebnis.

Ich habe sogar einen neuen TreeView eingefügt und nach und nach die Einstellungen meines Projekts angepasst. Irgendwann kam kein Resultat zurück, ließ sich aber nicht wieder rückgängig machen...

VirtualStringTree1.Header.Columns.ColumnFromPosition(VirtualStringTree1.ScreenToClient(Mouse.CursorPos)); Das hilft mir erst einmal weiter, jedoch ist die Abfrage irgendwie ein paar Pixel zu ungenau. Es scheint, als würde die am Anfang einer jeden Zeile eingeblendete Checkbox die Berechnung der Positionierung beeinflussen. Zum besseren Verständnis hänge ich eine Grafik dran.
Miniaturansicht angehängter Grafiken
vst_113.png  
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz