- 大鱼炖火锅
-
MainMenu1.Items表示主菜单下横列的子菜单,目前只有“编辑”一项。你搞出个Items[1]、Items[2]当然越界了。照下面的改:
var
sm1: TMenuItem;
cdx1: array[1..4] of TMenuItem;
cdx3, cdx2, cdx4: array[1..3] of TMenuItem;
k: Integer;
begin
sm1 := TMenuItem.Create(self);
sm1.Caption:= "编辑";
MainMenu1.Items.Add(sm1);
for k := 1 to 4 do
cdx1[k] := TMenuItem.Create(self);
cdx1[1].Caption := "字体";
cdx1[2].Caption := "颜色";
cdx1[3].Caption := "大小";
cdx1[4].Caption := "退出";
for k := 1 to 4 do
MainMenu1.Items[0].Add(cdx1[k]);
for k := 1 to 3 do
cdx2[k] := TMenuItem.Create(self);
cdx2[1].Caption := "宋体";
cdx2[2].Caption := "隶书";
cdx2[3].Caption := "黑体";
for k := 1 to 3 do
MainMenu1.Items[0].Items[0].Add(cdx2[k]);
for k:=1 to 3 do
cdx3[k]:=TMenuItem.Create(self);
cdx3[1].Caption := "10";
cdx3[2].Caption := "20";
cdx3[3].Caption := "30";
for k := 1 to 3 do
MainMenu1.Items[0].Items[2].Add(cdx3[k]);//你这句是错的
for k:=1 to 3 do
cdx4[k] := TMenuItem.Create(self);
cdx4[1].Caption := "红";
cdx4[2].Caption := "蓝";
cdx4[3].Caption := "绿";
for k:=1 to 3 do
MainMenu1.Items[0].Items[1].Add(cdx4[k]);//你这句是错的
end;
- okok云
-
数组越界.应该是 for k := 0 to count -1 Count 是菜单数量
- 陶小凡
-
List Index out of bound(1)一般都是由于 items 、combobox 等或数组越界造成!
你重点查下这方面…