使用 IntraWeb (11) - 基本控件之 TIWButton



所在單元及繼承鏈:
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;



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM