用程序加入的控件如何建立事件(30分)

  • 主题发起人 主题发起人 suntao
  • 开始时间 开始时间
S

suntao

Unregistered / Unconfirmed
GUEST, unregistred user!
在STRINGGRID中用程序加入COMBOBOX,得到hawkview和liuly的帮助,并选择了hawkview的方法,即不在FORM中添加COMBOBOX,而是用程序写入.但我不知道怎样建立COMBOBOX的click事件,以知道点射击中的哪一个ITEM项,谁能帮我一下?
 
在TForm class中
TForm1=class(TForm)
{...}
private
procedure ComBoBoXClick(Sender:TObject);
{..}
end;

procedure TForm1.ComBoBoxClick(Sender:TObject);
begin
case (Sender as TComBoBox).Tag of
1:{...};
2:{...};
end;
end;

在你程序中添加TComBoBox是为每个TComBoBox.Tag付不同的值,这样你就可以区分他们了。


 
在建立TComboBox控件时
SampleComboBox.OnClick:=ComBoBoXClick;
SampleComboBox.ItemIndex就是用户Click的选项。
 
?点射击中的哪一个ITEM项?
TComboBox.ItemIndex
 
沈老师按您的思路
type
procedure FormCreate(Sender: TObject);
private
procedure testComBoClick(Sender:TObject);
var
Form1: TForm1;
var testcombo:Tcombobox;
procedure TForm1.FormCreate(Sender: TObject);
begin
testcombo:=Tcombobox.create(self);
end;
procedure TForm1.testcomBoClick(Sender:TObject);
begin
case (Sender as TComBoBox).Tag of
1:;edit1.text:=inttostr(testCombo.ItemIndex);//form中加的EDIT
2://{...};
end;
end;
试了以后还是得不到CLICK响应事件。
Pipi老师:程序中加入的控件没有object inspector的events,不知怎样建立click事件,以处理items选项。
 
procedure TForm1.FormCreate(Sender: TObject);
begin
testcombo:=Tcombobox.create(self);
testcombo.Items.Add('shenqw1');
testcombo.Items.Add('shenqw2');
testcombo.Items.Add('shenqw3');
testcombo.Items.Add('shenqw4');
testcombo.onclick:=testcomBoClick;
end;

BTW:
我还不够资格称老师。 {B-)
 
忘记了,应该为:
procedure TForm1.FormCreate(Sender: TObject);
begin
testcombo:=Tcombobox.create(self);
testcombo.Items.Add('shenqw1');
testcombo.Items.Add('shenqw2');
testcombo.Items.Add('shenqw3');
testcombo.Items.Add('shenqw4');
testcombo.onclick:=testcomBoClick;
testcombo.tag:=1;
//区分哪个TComboBox
end;
 
testcombo.OnClick:=testcomBoClick;//建立click事件
testcombo.Tag:=1或者2或者3;//区分不同的combobox
 
在testcombo:=Tcombobox.create(self);后面加上testcombo.parent:=self可以。沈老师太高,多谢了。
 
后退
顶部