{ Mehmet Avşar 2003 İstanbul }
Kod: Tümünü seç
procedure MenuToTree(Var Menu: TMainMenu; Var Tree: TTreeview; RootCaption:String);
var
i1 : Integer;
MyRootTreeNode: TTreeNode;
function VeSil(Str1:String):String;
var
u1:integer;
begin
Result:='';
for u1:=1 to length(Str1) do if Str1[u1]<>'&' then Result:=Result+Str1[u1];
end;
procedure AltMenuleriEkle(Root: TTreeNode; Menu: TMenuItem);
var
i2: Integer;
MyTreeNode : TTreeNode;
begin
if Menu.IsLine then Exit;
if not Menu.Enabled then Exit;
if not Menu.Visible then Exit;
MyTreeNode:=Tree.Items.AddChild(Root, VeSil(Menu.Caption));
MyTreeNode.Data:=Menu;
if Menu.ImageIndex>0 then
begin
MyTreeNode.ImageIndex:=Menu.ImageIndex;
MyTreeNode.SelectedIndex:=Menu.ImageIndex;
end else begin
MyTreeNode.ImageIndex:=0;
MyTreeNode.SelectedIndex:=0;
end;
For i2:=0 to Menu.Count-1 do AltMenuleriEkle(MyTreeNode, Menu.Items[i2])
end;
begin
Tree.Items.Clear;
Tree.Images:=Menu.Images;
MyRootTreeNode := Tree.Items.Add(nil, RootCaption);
for i1:=0 to Menu.Items.Count-1 do AltMenuleriEkle(MyRootTreeNode, Menu.Items[i1]);
MyRootTreeNode.Expanded:=True;
end;
Kod: Tümünü seç
MenuToTree(FinansMMenu,TreeView1,'Finans');
Kod: Tümünü seç
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
MyMenuItem: TMenuItem;
MyNotifyEvent: TNotifyEvent;
begin
inherited;
if TV.Selected.Data<>nil then
begin
MyMenuItem:=TV.Selected.Data;
if Addr(MyMenuItem.Onclick)<>nil then
begin
MyNotifyEvent:=MyMenuItem.OnClick;
MyNotifyEvent(MyMenuItem);
end;
end;
end;