AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls VST, Suche SelectItem-ähnliches Event. OnChange scheitert an FocusedNode.GetData

VST, Suche SelectItem-ähnliches Event. OnChange scheitert an FocusedNode.GetData

Ein Thema von Bünni · begonnen am 12. Mär 2019 · letzter Beitrag vom 12. Mär 2019
Antwort Antwort
Bünni

Registriert seit: 4. Mär 2019
67 Beiträge
 
#1

VST, Suche SelectItem-ähnliches Event. OnChange scheitert an FocusedNode.GetData

  Alt 12. Mär 2019, 01:56
Im TListView gibt es ein Event SelectItem. Das wird auch aktiviert, wenn man bei dauerhaft gedrückter Maustaste Listview-Items im Report-Stil markiert.

Gibt es sowas auch für das VirtualStringTree?
Ich möchte mehrere Nodes mit gedrückter Maustaste selektieren und in der Caption des Programms ausgeben wieviele selektiert sind.

Es gibt zwar OnChange, aber da bekomme ich beim dem Aufruf eine Zugriffsverletzung wenn man vorher nicht mindestens 1x einen Node angeklickt hat.
Delphi-Quellcode:
 if VST.SelectedCount = 1 then
  Data := VST.FocusedNode.GetData<TData>;
Und genau diesen TData-Daten brauche ich leider genau da, damit ich weiß über welchen Node (wenn einer selektiert ist) ich gerade mit meiner Multi-Selektierung (gedrückte linke Maustaste) fahre.

Geändert von Bünni (12. Mär 2019 um 02:34 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: VST, Suche SelectItem-ähnliches Event. OnChange scheitert an FocusedNode.GetData

  Alt 12. Mär 2019, 08:39
.. ich denke Du wirst nicht umhin kommen , die Mouseposition in einen Index umzurechnen.

Stichhworte: Mouse.CursorPos und ScreenToClient

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: VST, Suche SelectItem-ähnliches Event. OnChange scheitert an FocusedNode.GetData

  Alt 12. Mär 2019, 09:38
Schau dir mal OnAddToSelection und OnRemoveFromSelection an.
  Mit Zitat antworten Zitat
Bünni

Registriert seit: 4. Mär 2019
67 Beiträge
 
#4

AW: VST, Suche SelectItem-ähnliches Event. OnChange scheitert an FocusedNode.GetData

  Alt 12. Mär 2019, 13:39
Ich konnte das ganze Problem jetzt noch durch eine Art Schummelei ausgleichen.
Wenn ich Nodes mit dem Selektierungs-Kasten markiere, werden bestimmte Elemente der Benutzeroberfläche aktiviert oder deaktiviert.

Das Problem war, dass wenn man einen Node selektiert hat alles abläuft wie gewünscht. Beim zweiten (mit dem selben gedrückten Mausklick) auch.
De-selektiert man jetzt einen Node (noch immer im selben gedrückten Mausklick), dann weiß das VST zwar, dass nur noch 1 Node selektiert ist aber der übergebene Node an OnChange ist immer nil. Wahrscheinlich weil er selektiert war und sich danach nicht mehr ändert.

Repariert habe ich dieses Verhalten, indem ich am Ende meiner OnChange-Prozedur nun prüfe
Delphi-Quellcode:
 if (NodeSelectedCount = 1) then
  begin
   // FIX
   if SelectedNode = nil then // Wenn der Node nil ist, obwohl er selektiert ist ...
    SelectedNode := VST.GetFirstSelected; // ... hole den letzten verbleibenden selektierten Node
   // /FIX
Ob das aber das Gelbe vom Ei ist weiß ich nicht. Anders habe ich es noch nicht hinbekommen.
Das scheint ein Problem im OnChange mit dem letzten selektierten Node zu sein. SelectedCount funktioniert wie es soll hingegen.

Geändert von Bünni (12. Mär 2019 um 14:55 Uhr)
  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 16:26 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