Hi zusammen
Mit folgendem Code zeige ich in meinem PathfinderFrame ein Popup an, um unter einem selectierten Parent einen neuen TreeNode (und schliesslich einen neuen Ordner) zu erstellen:
Delphi-Quellcode:
procedure TOpenFileFrame.TVFilesExplorerContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean);
var P: TPoint; AnItem: TTreeNode;
X,Y: integer;
begin
X := MousePos.X;
Y := MousePos.Y;
AnItem := TVFilesExplorer.GetNodeAt(MousePos.X, MousePos.Y);
FPopUpNode := AnItem;
FPopUpPath := PNameRec(AnItem.Data)^.RealName;
...
P := ClientToScreen(Point(x,y));
PopupMenu1.Popup(P.X, P.Y);
end;
procedure TOpenFileFrame.Ordnererstellen1Click(Sender: TObject);
var Node: TTreeNode; LIsdirectory: Boolean;
NameRec: PNameRec; LCaption, LRealName, X,Y: String;
begin
LCaption:= PNameRec(FPopUpNode.Data)^.Caption;
LRealName := PNameRec(FPopUpNode.Data)^.RealName;
LIsdirectory := PNameRec(FPopUpNode.Data)^.IsDirectory;
if LIsdirectory then
begin
Node.ImageIndex := 3;
Node.SelectedIndex := 3;
Node := TVFilesExplorer.Items.AddChild(FPopUpNode, 'Neu');
X := Node.Text;
Node.EditText;
// TVFilesExplorer.Selected := Node;
// TVFilesExplorer.Selected.EditText;
end
else
begin
Showmessage('Der Ordner kann nicht erstellt werden.');
end;
end;
Der Knoten wird zwar erstellt, aber er klebt links oben in der Ecke des Treeviews. Was mache ich falsch?
Gruss
Delbor