我想在程序里实现这样的功能:从combobox下拉列表框里选中一个值,然后赋给一个memo,我用的是click事件。当鼠标中键滚动时,也触发了click事件,这时combobox里的值改变,memo里的值也跟着改变。有什么办法只让他从下拉列表框选择时,memo才改变呀?我的代码是这样的
procedure TForm2.TCombo7Click(Sender: TObject);
begin
if trim(dbmemo1.Text)='' then dbmemo1.Text:=tcombo7.Text
else dbmemo1.Text:=dbmemo1.Text + #13#10+ tcombo7.Text;
end;
procedure TForm2.TCombo7Click(Sender: TObject);
begin
if trim(dbmemo1.Text)='' then dbmemo1.Text:=tcombo7.Text
else dbmemo1.Text:=dbmemo1.Text + #13#10+ tcombo7.Text;
end;
当鼠标中键滚动时,还是会触发onclick或onchange事件,combobox的内荣仍在改变,memo也会跟着改变
然后在combobox的OnDropDown事件中添加语句:k:=1;
在combobox的OnCloseUp事件中添加语句:k:=k+1;//这样一次点击之后,k就变成2了
最后在combobox的OnClick事件中添加语句:procedure TForm1.tcombo7Click(Sender: TObject);
begin
if k=2 then
begin
if trim(dbmemo1.Text)='' then dbmemo1.Text:=tcombo7.Text
else dbmemo1.Text:=dbmemo1.Text + #13#10+ tcombo7.Text;
k:=1;
end;
end;以上代码经过测试,没有错误
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
Handled := True;
end;
下手这么重啊,如果这样做,万一界面上还有个dbgrid,估计用起来就麻烦了
begin
ComboBox1.Hint := ComboBox1.Text;
end;procedure TForm1.ComboBox1CloseUp(Sender: TObject);
begin
if ComboBox1.Hint <> ComboBox1.Text then
Memo1.Lines.Add(ComboBox1.Text);
end;