在菜单中我假设它的动作是新建,删除,修改,事件定义如下 procedure TForm1.N1Click(Sender: TObject); //新建 var inputstr:string; begin InputStr:= InputBox('输入','请输入新建内容',''); if trim(inputstr)<>'' then listbox1.Items.Add(inputstr); listbox1.Refresh; end;procedure TForm1.N2Click(Sender: TObject); //删除 begin listbox1.Items.Delete(listbox1.ItemIndex); listbox1.Refresh; end;procedure TForm1.N3Click(Sender: TObject); //修改 var inputstr:string; begin InputStr:= InputBox('输入','请输入修改内容',listbox1.Items.ValueFromIndex[listbox1.ItemIndex]); listbox1.Items.Delete(listbox1.ItemIndex); if trim(inputstr)<>'' then listbox1.Items.Add(inputstr); listbox1.Refresh; end;end.至于属性设置如上我说的,我想楼主应该清楚了吧
各菜单中的内容一样,产生的动作不同.
能不能说清楚一点?
解决方法:新建一个popup menu控件popupmenu1,点住listbox,设置属性popupmenu选择为popupmenu1即可。具体的菜单内容自己填写,事件也自己定义即可。
procedure TForm1.N1Click(Sender: TObject); //新建
var inputstr:string;
begin
InputStr:= InputBox('输入','请输入新建内容','');
if trim(inputstr)<>'' then
listbox1.Items.Add(inputstr);
listbox1.Refresh;
end;procedure TForm1.N2Click(Sender: TObject); //删除
begin
listbox1.Items.Delete(listbox1.ItemIndex);
listbox1.Refresh;
end;procedure TForm1.N3Click(Sender: TObject); //修改
var inputstr:string;
begin
InputStr:= InputBox('输入','请输入修改内容',listbox1.Items.ValueFromIndex[listbox1.ItemIndex]);
listbox1.Items.Delete(listbox1.ItemIndex);
if trim(inputstr)<>'' then
listbox1.Items.Add(inputstr);
listbox1.Refresh;
end;end.至于属性设置如上我说的,我想楼主应该清楚了吧
比如说
点击MENU的N1,就作判断,判断当前LISTBOX的ITEMINDEX,然后写一个CASE语句。我都懒得再写的更详细了