【发布时间】:2013-05-10 21:52:19
【问题描述】:
如果我在运行时创建 n 个选项卡,并使用以下方法在每个选项卡内创建一个 Web 浏览器:
procedure createTab;
var crm: TWebbrowser;
var ts: TsTabSheet;
begin
//Instance of tabsheet
ts := TsTabSheet.Create(pageControl);
ts.PageControl := pageControl;
//Instance of webbrowser
crm := TWebbrowser.Create(ts);
crm.Parent := TWinControl(ts);
crm.Align := alClient;
end;
当其中一个选项卡实例处于活动状态时,我如何知道其中包含哪个网络浏览器?示例:
procedure navigateToActiveTabsheet(url: string);
begin
//TO DO - How navigate to webbrowser inside active tabsheet?
end;
【问题讨论】:
-
如果可能的话,你不应该投射。所以不要写 crm.Parent := TWinControl(ts);因为无论 ts 到底是什么,这都会使您的代码编译。只需删除演员表。在需要强制转换的情况下,使用 as 运算符,因此可以对强制转换进行运行时检查。
标签: delphi delphi-xe2