使用 IntraWeb (21) - 基本控件之 TIWTabControl

TIWTabControl 动态添加页面示例
本文介绍如何在Delphi中使用TIWTabControl组件动态添加TIWTabPage,并展示了如何通过JavaScript实现标签页的切换。同时,文章提供了设置标签页颜色、字体和布局的代码示例。

TIWTabControl 包含的是 TIWTabPage; 设计时通过右键菜单 Add Page 添加(再给页面添加东西时一定要先选定页面); 下面例子是动态添加的.



TIWTabControl 所在单元及继承链:
IWCompTabControl.TIWTabControl < TIWCustomRegion < TIWHTML40Container < TIWHTMLContainer < TIWContainer < TIWBaseContainer < TScrollingWinControl < TWinControl < TControl < TComponent < TPersistent < TObject

主要成员:




 
property Pages: TList //TIWTabPage 对象的集合; 但它是 TList 类型, 使用前需转换下 property ActiveTabFont: TIWFont    //当前 Tab 标签的字体 property ActiveTabColor: TIWColor  //当前 Tab 标签的背景色 property InactiveTabFont: TIWFont  //其他 Tab 标签的字体 property InactiveTabColor: TIWColor //其他 Tab 标签的背景色 property ActivePage: Integer //当前页号; 如果需要设置它将导致提交, 官方给出了通过 js 进行本地设置的方法: IWTABCONTROL1.tabPane.setSelectedIndex(i); property BorderOptions: TIWContainerBorderOptions //它的边框选项还是比较复杂的, 个人觉得: 如果需要边框还不如套个 TIWRegion property LayoutMgr: TIWContainerLayout  //布局管理器, 它也可以用模板(它是从 TIWCustomRegion 继承的) property Color: TIWColor  // property OnChange: TNotifyEvent      // property OnAsyncChange: TIWAsyncEvent // procedure Submit(const AValue: string)  // procedure pageAdded(APage: TIWTabPage)  // procedure pageRemoved(APage: TIWTabPage) // function CreateNewPage(const APageTitle: string; const APageName: string): TIWTabPage // 


TIWTabPage:




 
{IWCompTabControl.TIWTabPage < TIWCustomRegion < TIWHTML40Container < TIWHTMLContainer < TIWContainer < TIWBaseContainer < TScrollingWinControl < TWinControl < TControl < TComponent < TPersistent < TObject} property Title: string  // property Color: TIWColor // property BorderOptions: TIWContainerBorderOptions // procedure Invalidate  // 


测试:


 



 
{先在空白窗体上放 1 个 TIWTabControl, 3 个 TIWTabPage, 2 个 TIWButton} procedure TIWForm1.IWAppFormCreate(Sender: TObject); var   fPage1, fPage2, fPage3: TIWTabPage; begin   //动态建立 3 个 TIWTabPage   fPage1 := IWTabControl1.CreateNewPage(' Page1 ');   fPage2 := IWTabControl1.CreateNewPage(' Page2 ');   fPage3 := IWTabControl1.CreateNewPage(' Page3 ');   //让 IWButton1 具备切换标签的功能   JavaScript.Add('var i = 0;'); //js 全局变量   IWButton1.ScriptEvents.HookEvent('onclick', 'i++; i%=3; IWTABCONTROL1.tabPane.setSelectedIndex(i);'); //IWTABCONTROL1 或换成 IWTABCONTROL1IWCL   IWTabControl1.Color := $efefef;   IWTabControl1.InactiveTabColor := $efefef;   IWTabControl1.ActiveTabColor := $0000ff;   IWGrid1.Parent := fPage1;   IWGrid2.Parent := fPage2;   IWGrid3.Parent := fPage3;   IWGrid1.RowCount := 3;   IWGrid1.ColumnCount := 4;   IWGrid1.BGColor := $ffeeee;   IWGrid1.CellPadding :=4;   IWGrid1.Align := alTop;   IWGrid2.RowCount := 4;   IWGrid2.ColumnCount := 5;   IWGrid2.BGColor := $eeeeff;   IWGrid2.CellPadding := 4;   IWGrid2.Align := alTop;   IWGrid3.RowCount := 5;   IWGrid3.ColumnCount := 6;   IWGrid3.BGColor := $eeffee;   IWGrid3.CellPadding := 4;   IWGrid3.Align := alTop; end; {测试 Pages 属性} procedure TIWForm1.IWButton2Click(Sender: TObject); begin   WebApplication.ShowMessage(TIWTabPage(IWTabControl1.Pages[0]).Title); // Page1 end; 


效果图:

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值