Autor Beitrag
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mo 24.04.06 23:22 
Ich versuche rekursiv ein PopupMenü mit Sub-Menüs zu erstellen. Allerdings habe ich Probleme bei den Submenüs. Ich hab hier einen auf das vesentliche vereinfachten Code:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
var
  Form1: TForm1;
  PopUpItem: TMenuItem;
  SubItem: TMenuItem;
  NameNo: Word;

implementation

{$R *.DFM}

procedure CreateSubMenu(var SubItems: TMenuItem);
var
  i: Integer;
begin
  for i := 0 to 3 do
  begin
    PopUpItem := TMenuItem.Create(Form1);
    PopUpItem.Name := 'Name'+ IntToStr(NameNo);
    PopUpItem.Caption := 'Name'+ IntToStr(NameNo);
    Inc(NameNo);

    SubItems.Add(PopUpItem);
  end;
end;

procedure CreateMenu;
var
  i: Integer;
begin
  for i := 0 to 3 do
  begin
    PopUpItem := TMenuItem.Create(Form1);
    PopUpItem.Name := 'Name'+ IntToStr(NameNo);
    PopUpItem.Caption := 'Name'+ IntToStr(NameNo);
    Inc(NameNo);

    if i = 3 then
    begin
      CreateSubMenu(PopUpItem);
    end;

    Form1.PopupMenu1.Items.Add(PopUpItem);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.PopupMenu := PopupMenu1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  CreateMenu;
end;


Eine PupupMenu Komponente muß auf dem Formular sein. Weiterhin hab den Code auf vier Haupt-Items und vier Sub-Items reduziert. Also irgendwie sehe ich den Fehler nicht.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(