想要的效果如下:
点击combobox的下拉箭头时,出现一系列的数据,用鼠标移动到某一条数据上时(还没有点选),单击鼠标右键的“删除”选项将对应的数据删除!
点击combobox的下拉箭头时,出现一系列的数据,用鼠标移动到某一条数据上时(还没有点选),单击鼠标右键的“删除”选项将对应的数据删除!
解决方案 »
- delphi运用webbroser连续focus后光标闪动
- 三层数据库怎么样跨越局域网
- 单击"button"所产生的消息?
- 日期变更消息
- dbgrid显示SQL2000的文本格式的内容时不能正常显示
- 请大家看一看下面这个网页,请问这个控件在那里下载(powerpdf)
- 两个局域网中的英特网用户要怎么样才能通信。给点思路吧,或者要看什么书也行。
- 多个线程之间的并发处理?
- 在delphi运行期,怎么样把动态设置的界面保存为一个文件,然后在其它程序功能中进行调用?
- 这条语句为何通不过?请指教!
- 如何删除combobox下拉框数据
- 放在pageCONTROL上的DBMEMO,DBRICHEDIT会自动改变对齐方式?
TForm1 = class(TForm)
ComboBox1: TComboBox;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
procedure OnMouseRBtnDown(var Msg : TMsg; var Handled : Boolean);
procedure FormCreate(Sender: TObject);
procedure N1Click(Sender: TObject);//弹出菜单的“删除?”项
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.OnMouseRBtnDown(var Msg : TMsg; var Handled : Boolean);
begin
if Msg.message = WM_rButtonDown then
begin
PopUpMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
//如果希望右击直接删除(不用弹出菜单),则把N1Click的代码放在这里,把上行删掉
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:=OnMouseRBtnDown;
end;procedure TForm1.N1Click(Sender: TObject);
var
Index : Integer;
begin
Index := Combobox1.ItemIndex;
Combobox1.Items.Delete(Index);
Combobox1.ItemIndex := Index;
Combobox1.Perform(CB_ShowDropDown,LongInt(True),0);
end;