if Sender = from1.DBGrid1 then begin // end else if Sender = from2.DBGrid1 then begin // end;
在事件里sender是一个参数名啊。。看看你的事件函数的参数 然后判断sender.owner是不是form1 if (sender as TDBGrid).Owner=form1 then begin showmessage('form1'); end;
我是这样做的,可还是不对呀? if sender = form2.dbgrid1 then begin str_zgid:= dbgrid1.DataSource.DataSet.FieldValues['zg_id']; end else if (sender = BaseQueryForm.dbgrid1 then begin str_zgid:=query_in_zgid ;//全局变量赋值 end; ...........//对数据库进行数据库的update操作
各位这样编译是通过了,可执行操作时出错,出错信息是:invalid class typecast 不知为什么
我是如你说的那样的,可执行时出错如上面的信息 if (sender as TDBGrid).Owner=form2.DBGrid1 then begin str_zgid:= dbgrid1.DataSource.DataSet.FieldValues['zg_id']; end else if (sender as TDBGrid).Owner=BaseQueryForm.DBGrid1 then begin str_zgid:=query_in_zgid ; end;
aiirii(ari-爱的眼睛) ( ) 说的不全面: 如果dbGrid控件放在Tframe中然后放在form上呢 fucntion fnGetOwner(sender:TComponent):Tform; begin Result:=Sender; while Result.Owner<>Tform do begin Result:=Result.Owner; end; end; // if fnGetOwner(Owner) then.Owner= from1.DBGrid1 then .....
我是如你说的那样的,可执行时出错如上面的信息 if (sender as TDBGrid).Owner=form2.DBGrid1 then //这里不对 begin str_zgid:= dbgrid1.DataSource.DataSet.FieldValues['zg_id']; end else if (sender as TDBGrid).Owner=BaseQueryForm.DBGrid1 then begin str_zgid:=query_in_zgid ; end;-------------------------------------------------------- 改成if (sender as TDBGrid).Owner=form2 then //这里不对 begin str_zgid:= dbgrid1.DataSource.DataSet.FieldValues['zg_id']; end else if (sender as TDBGrid).Owner=BaseQueryForm.DBGrid1 then begin str_zgid:=query_in_zgid ; end 楼上说得也有道理...
begin
//
end
else
if Sender = from2.DBGrid1 then
begin
//
end;
然后判断sender.owner是不是form1 if (sender as TDBGrid).Owner=form1 then
begin
showmessage('form1');
end;
if sender = form2.dbgrid1 then
begin
str_zgid:= dbgrid1.DataSource.DataSet.FieldValues['zg_id'];
end
else
if (sender = BaseQueryForm.dbgrid1 then
begin
str_zgid:=query_in_zgid ;//全局变量赋值
end;
...........//对数据库进行数据库的update操作
if (sender as TDBGrid).Owner=form2.DBGrid1 then
begin
str_zgid:= dbgrid1.DataSource.DataSet.FieldValues['zg_id'];
end
else
if (sender as TDBGrid).Owner=BaseQueryForm.DBGrid1 then
begin
str_zgid:=query_in_zgid ;
end;
如果dbGrid控件放在Tframe中然后放在form上呢
fucntion fnGetOwner(sender:TComponent):Tform;
begin
Result:=Sender;
while Result.Owner<>Tform do
begin
Result:=Result.Owner;
end;
end;
//
if fnGetOwner(Owner) then.Owner= from1.DBGrid1 then
.....
if (sender as TDBGrid).Owner=form2.DBGrid1 then //这里不对
begin
str_zgid:= dbgrid1.DataSource.DataSet.FieldValues['zg_id'];
end
else
if (sender as TDBGrid).Owner=BaseQueryForm.DBGrid1 then
begin
str_zgid:=query_in_zgid ; end;--------------------------------------------------------
改成if (sender as TDBGrid).Owner=form2 then //这里不对
begin
str_zgid:= dbgrid1.DataSource.DataSet.FieldValues['zg_id'];
end
else
if (sender as TDBGrid).Owner=BaseQueryForm.DBGrid1 then
begin
str_zgid:=query_in_zgid ;
end
楼上说得也有道理...