动态控件数组的事件处理程序怎么写呀,在线等,急

houyongdong 2003-10-16 02:54:26
我的程序:
public
teamstring:array[0..20] of Tstringgrid;
procedure TeamStringMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
过程:
for i:=0 to 10 do
begin
teamstring[i]:=tstringgrid.create(self);
teamstring[i]:=teamstringmouseup;
end;
procedure TeamStringMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//
end;
执行我按鼠标没有反映,但单个控件可以的。求各个大虾救救则个,我都被老板逼疯了
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
whxhz80 2003-10-17
  • 打赏
  • 举报
回复
主要是定义和你要发生的事件一样的过程,然后指定xxx.On...事件就可以
micher_yan 2003-10-16
  • 打赏
  • 举报
回复
给你个实例.
全贴太多:)
循环创建控件
TE[i]:= TComboBox.Create(Self);
TE[i].Left:= 256;
TE[i].Top:= 32+i*30;
TE[i].Width:= 121;
TE[i].Name:= 'MyTE'+IntToStr(i);
TE[i].Tag:= Integer(TCB[i]);
TE[i].Parent:= ScrollBox1;
TE[i].Text:= dm1.ADOT.FieldByName('dataname').AsString ;
TE[i].Items:= SysDSCB.Items;
//数据源有效性检查
TE[i].OnClick:= SysDSCB_Change;
//TE[i].OnEnter:= SysDSCB_Change;
TE[i].OnExit:= SysDSCB_Change;
事件定义
procedure TMainFrm.SysDSCB_Change(Sender: TObject);
var
s : string;
i : Integer;
FindB : Boolean;
begin
s:= TComboBox(Sender).Text;
FindB:= False;
for i:=0 to TComboBox(Sender).Items.Count-1 do
begin
if ansiupperCase(s)=AnsiUpperCase(TComboBox(Sender).Items[i]) then
begin
FindB:= True;
break;
end;
end;
if not FindB then
begin
Windows.MessageBox(Handle,'数据源设置无效。','错误',mb_iconerror+MB_OK);
TComboBox(Sender).SetFocus;
Exit;
end;
try
dm1.ADOConnIn.Close;
dm1.ADOConnIn.ConnectionString:='DSN='+TComboBox(Sender).Text;
dm1.ADOConnIn.Open;
dm1.ADOConnIn.GetTableNames(TCombobox(TComboBox(Sender).Tag).Items,False);
dm1.ADOConnIn.Close;
except
end;
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧