Na ja, Add ist auf jeden Fall falsch („Der Knoten wird als letzter gleichrangiger Knoten des Parameters Sibling hinzugefügt.“ willst du ja nicht). Habe jetzt deinen Code mal in ein Projekt kopiert und mit AddChild geht es.
Damit das mit dem EditText funktioniert, musst du vorher noch FPopupNode.Expand(egal) aufrufen, aber darum geht's hier nicht.
Kompletter Implementation-Abschnitt:
Delphi-Quellcode:
procedure TForm1.TVFilesExplorerMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var AnItem: TTreeNode; P: TPoint;
begin
if Button =(mbRight) then
begin
AnItem := TVFilesExplorer.GetNodeAt(X, Y);
if AnItem <> nil then
begin
FPopUpNode := AnItem;
//FPopUpPath := PNameRec(AnItem.Data)^.RealName;
//FPopUpPoint := Point(x,y);
end;
P := ClientToScreen(Point(x,y));
ShowMessage('procedure TOpenFileFrame.TVFilesExplorerMouseDown' +sLineBreak+
'FPopUpNode :=' + FPopUpNode.Text);
PopupMenu1.PopupComponent := TVFilesExplorer;
PopupMenu1.Popup(P.X, P.Y);
end;
end;
procedure TForm1.uwas1Click(Sender: TObject);
var
Node: TTreeNode;
begin
begin
// Node := TVFilesExplorer.Items.AddChildFirst(FPopUpNode, 'Neu');
Node := TVFilesExplorer.Items.AddChild(FPopUpNode, 'Neu');
FPopupNode.Expand(True);
// Node := TVFilesExplorer.Items.AddChild(FPopUpNode, 'Neu');
Node.ImageIndex := 3;
Node.SelectedIndex := 3;
Node.EditText;
end
//else
//begin
// Showmessage('Der Ordner kann nicht erstellt werden.');
//end;
end;
D2009. Wenn's nicht geht, liegt's vielleicht an D5. Probier doch mal nur das Hinzufügen in einem Minimalbeispiel ganz ohne Popup.