Delphi 怎样获得当前活动窗体上的指定类型控件?
比如说我现在有Form1上面有多个Tabsheet,而每个TabSeet上又都有一个DBGrid,我怎么样才可以取得当前显示页的DBGrid呢?不好意思,可能是我说的不是...
比如说我现在有 Form1 上面有多个Tabsheet,而每个TabSeet上又都有一个DBGrid,我怎么样才可以取得当前显示页的DBGrid呢?
不好意思,可能是我说的不是很清楚,我用的是MDI框架,我想在主窗体(MainFrm)上做一个刷新的按钮(RefreshButton),在我点RefreshButton的时候,自动抓取当前活动Tabsheet上的DBGrid.DataSource.DataSet。不知道我这个思路是不是有点问题! 展开
不好意思,可能是我说的不是很清楚,我用的是MDI框架,我想在主窗体(MainFrm)上做一个刷新的按钮(RefreshButton),在我点RefreshButton的时候,自动抓取当前活动Tabsheet上的DBGrid.DataSource.DataSet。不知道我这个思路是不是有点问题! 展开
4个回答
展开全部
大哥,每个DBGRID都有他自己的名字,你直接调用名字不就好了?不管你是N个TABSHEET还是一个页面上有多个DBGRID,他们都是有名字的,第一个拖上去的就叫DBGRID1,第二个就叫DBGRID2,此外,你还可以在NAME属性里对其重新命名。使用的时候调用不同的名字就可以了。。。。
追问
不好意思,可能是我说的不是很清楚,我用的是MDI框架,我想在主窗体(MainFrm)上做一个刷新的按钮(RefreshButton),在我点RefreshButton的时候,自动抓取当前活动Tabsheet上的DBGrid.DataSource.DataSet。不知道我这个思路是不是有点问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
procedure TForm1.Button3Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to Self.ComponentCount - 1 do
begin
if Self.Components[i] is TDBGrid then
begin
if (Self.Components[i] as TDBGrid).Parent.Name =
PageControl1.Pages[PageControl1.TabIndex].Name then
begin
ShowMessage('当前DBGrid的名字是:'+(Self.Components[i] as TDBGrid).Name);
end;
end;
end;
end;
var
i: Integer;
begin
for i := 0 to Self.ComponentCount - 1 do
begin
if Self.Components[i] is TDBGrid then
begin
if (Self.Components[i] as TDBGrid).Parent.Name =
PageControl1.Pages[PageControl1.TabIndex].Name then
begin
ShowMessage('当前DBGrid的名字是:'+(Self.Components[i] as TDBGrid).Name);
end;
end;
end;
end;
更多追问追答
追问
不好意思,可能是我说的不是很清楚,我用的是MDI框架,我想在主窗体(MainFrm)上做一个刷新的按钮(RefreshButton),在我点RefreshButton的时候,自动抓取当前活动Tabsheet上的DBGrid.DataSource.DataSet。不知道我这个思路是不是有点问题!
追答
把 ShowMessage('当前DBGrid的名字是:'+(Self.Components[i] as TDBGrid).Name);
换成 (Self.Components[i] as TDBGrid).DataSource.DataSet.Refresh;然后跳出循环就可以了
要学会举一反三.我写的只是个例子
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你要知道这个DBGRID的名字,例如:
if Self.FindComponent('DBGrid1') <> nil then
do something
if Self.FindComponent('DBGrid1') <> nil then
do something
追问
不好意思,可能是我说的不是很清楚,我用的是MDI框架,我想在主窗体(MainFrm)上做一个刷新的按钮(RefreshButton),在我点RefreshButton的时候,自动抓取当前活动Tabsheet上的DBGrid.DataSource.DataSet。不知道我这个思路是不是有点问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我有一个进销存,你把邮箱发给我咯,但是我是通过VS2010开发的开发模式是MVC2.0页面都是asp.net的你要的话给我邮箱
郁闷都要给你发你要不
郁闷都要给你发你要不
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询