随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万


所在单元及继承链:
IWCompButton.TIWButton < TIWCustomControl < TIWBaseHTMLControl < TIWBaseControl < TIWVCLBaseControl < TControl < TComponent < TPersistent < TObject

主要成员:
property ButtonType: TIWButtonType  //!, 示例中详述
property HotKey: string             //热键; 譬如: HotKey = 'j', 那么热键就是: Alt+J
property Confirmation: string       //指定此信息后, 将弹出问询窗; 只有确认后才会执行 OnClick; 这非常方便, 也很有创意
property DoSubmitValidation: Boolean  //是否在提交时验证其他...
property ExtraTagParams: TStringList  //添加 Html Tag; 不要用于修改 Html Tag
property FriendlyName: string         //呈现给用户的名称
property ScriptEvents: TIWScriptEvents  //客户端的 js 事件脚本
property WebColor: TIWColor           //没看出和 Color 的区别
property WebFont: TIWFont             //没看出和 Font 的区别
property Css: string     //引用在样式表中定义的类; 譬如在样式表定义有 .MyClass1, 这里就可以设置 Css := 'MyClass1';
property StyleRenderOptions: TIWStyleRenderOptions  //指定哪些类别的样式设置可用于最终的呈现; 因为一些属性可能会和样式表有冲突
property Caption: TCaption  //标题
property Text: TCaption     //在该控件中, Text 和 Caption 没有区别
property DoRefreshControl: Boolean //它默认是 False, 但在修改某些属性时必须让它为 True 才会有效

property OnClick: TNotifyEvent        //与 ScriptEvents 中的 onclick 不同, 这会使整个页面提交, 就像 Submit 按钮一样
property OnAsyncClick: TIWAsyncEvent  //异步 Click; 难得见到这么简单的 AJAX 的实现
property OnHTMLTag: TIWOnHTMLTag      //事件发生在呈现 Html Tag 时; 可借机修改那些 Tag

function RenderHTML(AContext: TIWCompContext): TIWHTMLTag  //类似的还有 RenderStyle 等, 这应该是在继承控件时使用的; 现在可以使用 OnHTMLTag
function GetSubmitParam: string   //?
function OwnerForm: TIWBaseForm   //所属窗体; 譬如获取 IWButton1.OwnerForm.Name 的结果是 IWForm1


ButtonType 属性:
//在 Html 中的按钮有三种 Type: button、 submit、 reset, 分别表示: 一般按钮、提交按钮、重置按钮
//该属性的本意就是这个, 但现在它不起作用
//它默认是 button, 是否是指定为 submit 也不重要, TIWButton.OnClick 会自动提交; 但 reset 还是有用的

//在作者没有修正前, 可以先通过它的 OnHTMLTag 事件设置:
procedure TIWForm1.IWButton1HTMLTag(ASender: TObject; ATag: TIWHTMLTag); //可能需手动 uses IWHTMLTag
begin
  ATag.Params.Values['type'] := 'reset';
end;

{能接受重置的其他输入控件必须和重置按钮在同一 Region 内, 或都不在 Region 内}


DoSubmitValidation、FriendlyName 属性:
//在空窗体上放 IWEdit1、IWButton1, 写代码如下:
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
  IWEdit1.Required := True;          //指定为必填字段
  IWEdit1.FriendlyName := '姓名字段'; //在验证提示时将使用这个名称
//  IWButton1.DoSubmitValidation := False; //TIWButton.DoSubmitValidation 默认是 True; 如果指定为 False, 就不会执行验证了
end;

procedure TIWForm1.IWButton1Click(Sender: TObject);
begin
//只是测试提交, 这里不需要有代码
end;

//测试: 运行后, 清空 IWEdit1, 点击按钮, 将会弹出验证提示.


ExtraTagParams 属性:
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
  IWButton1.ExtraTagParams.Add('style = color: red');
end;


Css 属性:
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
  ExtraHeader.Add('<style>');
  ExtraHeader.Add('.MyClass1 {color: blue;}');
  ExtraHeader.Add('</style>');

  IWButton1.Css := 'MyClass1';
end;


posted on   万一  阅读(4221)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2011-06-12 解压 svgz 到 svg
2008-06-12 再学 GDI+[28]: TGPPen - 自定义画笔的虚线样式 - SetDashPattern
2008-06-12 再学 GDI+[27]: TGPPen - 画笔样式 - SetDashStyle
2008-06-12 再学 GDI+[26]: TGPPen - 画笔对齐 - SetAlignment
2008-06-12 再学 GDI+[25]: TGPPen - 宽度、颜色与线帽
2008-06-12 用 TClientDataSet 创建 XML 文件的过程 - 回复"丁永其"的问题
2008-06-12 再学 GDI+[24]: TGPLinearGradientBrush - 之三


点击右上角即可分享
微信分享提示