Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#10

AW: In einem TreeView einen Knoten erstellen

  Alt 3. Nov 2019, 18:52
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.
Janni
2005 PE, 2009 PA, XE2 PA

Geändert von Redeemer ( 3. Nov 2019 um 18:55 Uhr)
  Mit Zitat antworten Zitat