![]() |
VST und der ungewollte Selektionsrahmen...
Hallo Forum,
Ich arbeite gerade mit dem VirtualStringTree, dabei ist mit folgender Bug(?) aufgefallen, wenn ich im OnEdited-Ereigenis des Views eine Messagebox anzeigen lasse, so zeichnet der VST nach dem wegklicken der Box einen Selektionsrahmen, wie kann ich das verhindern, bzw. umgehen? :? Hier die Unit zum reproduzieren:
Delphi-Quellcode:
hoffe auf schnelle Hilfe
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Virtualtrees; type TmyData = class public var Value: String; end; TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private-Deklarationen } myVST: TVirtualStringTree; procedure myVSTGettext(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); procedure myVSTNewText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; NewText: WideString); procedure myVSTEdited(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex); public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var tmp: TmyData; begin myVST := TVirtualStringTree.Create(Self); myVST.Parent := Self; myVST.Width := Self.ClientWidth; myVST.Height := Self.ClientHeight; myVST.OnGetText := myVSTGettext; myVST.OnNewText := myVSTNewText; myVST.OnEdited := myVSTEdited; myVST.TreeOptions.MiscOptions := myVST.TreeOptions.MiscOptions+ [toEditable]; myVST.TreeOptions.SelectionOptions := myVST.TreeOptions.SelectionOptions + [toMultiSelect]; myVST.NodeDataSize := SizeOf(TmyData); tmp := TmyData.Create; tmp.Value := 'test'; myVST.AddChild(nil, tmp); myVST.Anchors := [akLeft,akTop,akRight,akBottom]; end; procedure TForm1.myVSTEdited(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex); begin ShowMessage('test'); end; procedure TForm1.myVSTGettext(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); begin Celltext := TmyData(Sender.GetNodeData(Node)^).Value end; procedure TForm1.myVSTNewText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; NewText: WideString); begin TmyData(Sender.GetNodeData(Node)^).Value := NewText; end; end. phreax :thumb: |
Re: VST und der ungewollte Selektionsrahmen...
Zitat:
|
Re: VST und der ungewollte Selektionsrahmen...
Liste der Anhänge anzeigen (Anzahl: 1)
Nein ich meine den Rahmen mit dem man mehrere Konten selektieren kann, Bild siehe Anhang....
|
Re: VST und der ungewollte Selektionsrahmen...
da kommt wohl ein mouseup ereignis nicht an.
|
Re: VST und der ungewollte Selektionsrahmen...
Und was kann man dagegen tun? ein
Delphi-Quellcode:
bringt leider auch keine Abhilfe....
procedure TForm1.myVSTEdited(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex); begin ShowMessage('test'); myVST.Perform(WM_LBUTTONUP, 0, 0); end; |
Re: VST und der ungewollte Selektionsrahmen...
Zitat:
@phreax: Ist das denn der gesamte Code, oder steckt da vielleicht noch mehr hinter... Hier habe ich diese Probleme definitiv nicht. |
Re: VST und der ungewollte Selektionsrahmen...
Liste der Anhänge anzeigen (Anzahl: 1)
Das ist natürlich nicht der gesamte Code, aber ich habe das ganze so weit reduziert, um den Fehler sauber einzugrenzen und der Fehler tritt bei mir bereits in diesem kleinen Demoprojekt auf.
Im Anhang mal das ganze Demoprojekt mit Echse, diese einfach mal ausführen, da tritt der Fehler bestimmt auf... schon mal Danke für alle Antworten bisher :) Grüße phreax |
Re: VST und der ungewollte Selektionsrahmen...
OK, bei der von Dir compilierten Version tritt der Fehler tatsächlich auf. Wenn ich jedoch Deinen Source (nur die Unit1 in ein neu erstelltes Projekt kopiert) selbst kompiliere, dann tritt der Fehler nicht auf. Vielleicht liegt es ja an einer der Projektdateien :gruebel:.
|
Re: VST und der ungewollte Selektionsrahmen...
Liste der Anhänge anzeigen (Anzahl: 1)
Ebenfalls: Die bei dir kompilierte Datei Project1.exe zeigt den beschriebenen Effekt, die bei mir kompilierte Datei (siehe Anhang) nicht. Ich habe dein Archiv ausgepackt und und das Projekt kompiliert. - Borland Delphi für Microsoft Windows Version 10.0.2288.42451 Update 2 ("TurboDelphi") und VirtualStringTree-Version 4.5.2
|
Re: VST und der ungewollte Selektionsrahmen...
Hab gerade nochmal den VirtualtTreeView neu installiert, und einfach meine Unit hier aus dem Thread in ein neues Projekt gepackt, und ausprobiert, immer noch der gleiche Fehler :(
Compiliert mit: Borland® "Turbo" Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2 VST-Version ist: 4.5.2 @Panthreax bei der von Dir angehängten Echse tritt der Fehler bei mir AUCH auf... Ausgeführt auf WinXP Home Sp2 Build 2600 Wiso tritt den dieser Bug nur bei mir auf??.... :drunken: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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