![]() |
VirtualTreeView von DelphiGems: C0000005 Exception
Guten Abend,
ich wollte schon immer mal einen editierbaren Tree basteln und habe mir deshalb das Advanced-Demo von VirtualTreeView angeschaut. Nach dem Compilieren mit D7 und Auswahl der 3. Seite (PropertiesDemo) wird immer eine C0000005-Exception ausgelöst, wenn die <Enter>- bzw. <Return>-Taste zur Bestätigung der Eingabe eines TEdits verwendet wird. Könnte das bitte jemand nachvollziehen, ob das bei ihm auch so ist, damit ich den Fehler einkreisen kann oder vielleicht hat jemand schon eine Lösung für dieses Problem gefunden? Danke schon mal Gruss Gremlin |
Re: VirtualTreeView von DelphiGems: C0000005 Exception
Hallo,
ich habe die Lösung im Supportforum von ![]() Das Problem mit der Exception ist, das zuviel zu früh freigegeben wird. Die Lösung ist im Keydown des TEdits eine Nachricht an das Hauptformular des Trees zu schicken und dort die Methode EndEditNode des Trees aufgerufen wird... Teilcode aus dem Forum (für den Editor):
Delphi-Quellcode:
procedure TPropertyEditLink.EditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); var CanAdvance: Boolean; RootForm : TWinControl; //new begin ... VK_RETURN: if CanAdvance then begin // new - begin RootForm := FTree; if Assigned(RootForm) then begin while (RootForm.Parent <> nil) do RootForm := RootForm.Parent; PostMessage(RootForm.Handle, WM_ENDEDITING, 0, 0); end; // new - end Key := 0; end; ... end; ... und der Code für die Form mit dem Tree:
Delphi-Quellcode:
procedure TMyForm.WMEndEditing(var Message: TMessage);
var tree: TVirtualStringTree; begin tree := GetCurrentTree; //needed by me, 'cause there are two VTVs on the form if Assigned(tree) then tree.EndEditNode; end; Gruss Gremlin |
Re: VirtualTreeView von DelphiGems: C0000005 Exception
Warum übergibst du den Tree nicht in der Message?
|
Re: VirtualTreeView von DelphiGems: C0000005 Exception
Kann man natürlich machen, jedoch war ich erst mal froh, überhaupt eine Lösung für das Problem gehabt zu haben und da die Zeit momentan sehr knapp bemessen ist, habe ich den Zeitpunkt der Optimierung ein Stück nach hinten verschoben :) Danke für den Hinweis.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 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