AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TreeView Items in Popupmenu übertragen

Ein Thema von API · begonnen am 16. Aug 2005 · letzter Beitrag vom 18. Aug 2005
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TreeView Items in Popupmenu übertragen

  Alt 16. Aug 2005, 19:38
Hi API,

dein Code war doch schon fast fertig - warum hast du aufgehört?

Delphi-Quellcode:
function TDemoForm.NodePath(node: TTreeNode): string;
begin
  Result := node.Text;
  if Assigned(node.Parent) then
    Result := NodePath(node.Parent) + ' \ ' + Result;
end;

procedure TDemoForm.ProcessItems(item: TMenuItem; node: TTreeNode);
var
  i: integer;
  subItem: TMenuItem;
  subNode: TTreeNode;
begin
  for i := 0 to node.Count - 1 do begin
    subNode := node.Item[i];
    subItem := NewItem(subNode.Text, TextToShortCut(''), false, true, nil, 0, '');
    subItem.Tag := Integer(subNode);
    if not subNode.HasChildren then
      subItem.OnClick := MenuItemClick;
    item.Add(subItem);
    ProcessItems(subItem, subNode);
  end;
end;

procedure TDemoForm.PopulateMenuFromTreeNodes(menu: TMenu; nodes: TTreeNodes);
var
  item: TMenuItem;
  node: TTreeNode;
begin
  menu.Items.Clear;
  node := nodes.GetFirstNode;
  while Assigned(node) do begin
    item := NewItem(node.Text, TextToShortCut(''), false, true, nil, 0, '');
    item.Tag := Integer(node);
    menu.Items.Add(item);
    if node.HasChildren
      then ProcessItems(item, node)
      else item.OnClick := MenuItemClick;
    node := node.getNextSibling;
  end;
end;

procedure TDemoForm.MenuButtonClick(Sender: TObject);
begin
  PopulateMenuFromTreeNodes(PopupMenu, MenuTree.Items);
end;

procedure TDemoForm.MenuItemClick(Sender: TObject);
begin
  with Sender as TMenuItem do
    ShowMessage(Format('%s', [NodePath(TTreeNode(Tag))]));
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:19 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