Einzelnen Beitrag anzeigen

Aviator

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

AW: VirtualTreeView Editfelder, ComboBox und andere

  Alt 28. Mär 2016, 21:21
Also im Prinzip hast du es schon richtig aufgebaut. Aber oben in deinen Methodendeklarationen hast du einige Fehler eingebaut die ich dir dooferweise in meinen Beitrag hineingeschrieben habe. Ich hatte mir das wie gesagt aus mehreren Klassen wieder zu einer zusammengeklickt und dadurch nicht gemerkt, dass die Methoden schon deklariert waren. Habe auch kein Testprogramm geschrieben um die von mir gepostete Klasse noch einmal zu testen.

Hier mal der Klassenheader mit den Methodendeklarationen (ich werde den in meinem Beitrag auch ersetzen):

Delphi-Quellcode:
  TEditEditLink = class (TInterfacedObject, IVTEditLink)
  private
    FEdit: TEdit;
    FTree : TVirtualStringTree;
    FNode : PVirtualNode;
    FColumn : Integer;
    procedure GetNodeText;
  public
    destructor Destroy; override;
    function BeginEdit: Boolean; virtual; stdcall;
    function CancelEdit: Boolean; virtual; stdcall;
    function EndEdit: Boolean; virtual; stdcall;
    function GetBounds: TRect; virtual; stdcall;
    function PrepareEdit(Tree: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex): Boolean; stdcall;
    procedure ProcessMessage(var Message: TMessage); virtual; stdcall;
    procedure SetBounds(R: TRect); stdcall;
  end;
Und das hier muss noch in die PrepareEdit Funktion hinein:

Delphi-Quellcode:
  Self.FEdit := TEdit.Create(Self.FTree);
  Self.FEdit.Visible := False;
  Self.FEdit.Parent := Self.FTree;
Ansonsten bekommst du beim Ausführen eine AV wegen einer nicht erzeugten Komponente.
Angehängte Dateien
Dateityp: 7z vstEditorDemo.7z (368,2 KB, 46x aufgerufen)

Geändert von Aviator (28. Mär 2016 um 21:23 Uhr)
  Mit Zitat antworten Zitat