C++Builder 程序员博客
3 Aug
如题,我在工具栏放了一个按钮,用于导出DBGridEH中的数据.
我采用的是多页面,即:一个窗口中有多页,每页上都有DBGridEH组件,这样当单击按钮时怎样判断要导出的数据是哪一个DBGridEH组件?
还可以根据tabindex的值判断,思路一样。
你用什麼導出來?fastreport? EXECL?
可以DATESET指定數據源呀
ActiveControl属性就是指当前活动的组件!
TPageConrt有ActiverPage可以判断激活页面
active
枚举窗体上所有的组件,判断类名为TDBGridEh并且父窗口为PageControl->ActivePage的就是当前显示出来的DBGridEh了。
举个简单例子:
TDBGridEh *dbgrd = NULL; for(int i=0; i<PageControl1->ActivePage->ControlCount; i++) { if(PageControl1->ActivePage->Controls[i]->ClassNameIs("TDBGridEh")) { dbgrd = (TDBGridEh *)PageControl1->ActivePage->Controls[i]; break; } } if(dbgrd) ShowMessage(dbgrd->Name);
ActivePageIndex可以查到活动的
首先感谢大家,可能又是我没说完整的原因,
ActivePageIndex、PageControl1->ActivePage虽然能判断当前活动的页从而找出活动页上的TDBGridEh组件。
但是,如果同一页里有多过TDBGridEh组件该怎么办呢?
把要导出的DBGridEh作个记号,比如Tag设为1之类的。然后在循环中判断了组件的类名后再判断该组件的Tag是否为需要导出的DBGridEh。