下面代码主要完成的是在DBGrid上弹出右键菜单,对DBGrid中的列进行显示与否的设置
//初始化PopupMenu中的列表
procedure InitMenuItem;
var
NewItem: TMenuItem;
i:integer;
begin
for i:=0 to DBGrid1.Columns.Count-1 do
begin
NewItem:=TMenuItem.Create(nil);
NewItem.Caption:=DBGrid1.Columns.Items[i].Title.Caption;
NewItem.OnClick:=MenuOnClick; //添加弹出菜单子项的方法
NewItem.Checked:= true;
PopupMenu1.Items.Add(NewItem);
end;
end;
procedure MenuOnClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:= not TMenuItem(Sender).Checked;
DBGridDisplayInf;
end;
procedure DBGridDisplayInf;
var
i:integer;
begin
for i:=0 to PopupMenu1.Items.Count-1 do
begin
if not PopupMenu1.Items[i].Checked then
DBGrid1.Columns.Items[i].Visible:= false
else
DBGrid1.Columns.Items[i].Visible:= true;
end;
end;