iwhiddenfield.pas

来自「Delphi 应用举例」· PAS 代码 · 共 101 行

PAS
101
字号
unit IWHiddenField;

interface

uses
  SysUtils, Classes, Controls, IWControl,IWHTMLTag,IWAppForm;

type
  TIWHiddenField = class(TIWControl)
  private
     procedure SetValue(const AValue: string);override;
  public
     function getValue:string;virtual;
     constructor Create(AOwner: TComponent);override;
     function RenderHTML: TIWHTMLTag; override;
  published
     property text;
  end ;
  TIWSpanCheckbox = class(TIWControl)
  private
  public
     constructor Create(AOwner: TComponent);override;
     function RenderHTML: TIWHTMLTag; override;
  published
     property text;
  end ;

var s:string;
procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('test', [TIWHiddenField,TIWSpanCheckbox]);
end;

constructor TIWHiddenField.Create(AOwner: TComponent);
begin
  inherited;
  FNeedsFormTag := True;
  FSupportsSubmit := True;
  FSupportsInput := True;
  FRenderSize := true;
  end;
function TIWHiddenField.getValue:string;
begin
   result:=text;
end;
function TIWHiddenField.RenderHTML: TIWHTMLTag;
var tmp: TIWHTMLTag;
begin
    Result := TIWHTMLTag.CreateTag('INPUT');
    try
      Result.AddStringParam('TYPE', 'HIDDEN');
      Result.AddStringParam('NAME', HTMLName);
      Result.AddStringParam('VALUE',getValue);
    except FreeAndNil(Result); raise; end;   
end ;
procedure TIWHiddenField.SetValue(const AValue: string);
begin
  Text := AValue;
  Invalidate;
end;
constructor TIWSpanCheckbox.Create(AOwner: TComponent);
begin
  inherited;
end;
function TIWSpanCheckbox.RenderHTML: TIWHTMLTag;
var tmp:TIWHTMLTag;
begin
    result:= TIWHTMLTag.CreateTag('INPUT');

      with result do begin
          AddStringParam('TYPE', 'CHECKBOX');
          AddStringParam('NAME', HTMLName);
          AddStringParam('ID', HTMLName + '_CHECKBOX');

      end;
    tmp:=result;
    Result := TIWHTMLTag.CreateTag('SPAN');
    Result.AddStringParam('ID', HTMLName);
    Result.AddStringParam('NAME', HTMLName + '_CHECKBOX');

      Result.Contents.AddTagAsObject(tmp);
      (Result.Contents.items[0] as TIWHTMLTag).Add('yk'); 
     // Result.ScriptedTag:=tmp;

     tmp:= TIWHTMLTag.CreateTag('INPUT');

      with tmp do begin
          AddStringParam('TYPE', 'CHECKBOX');
          AddStringParam('NAME', HTMLName+'11');
          AddStringParam('ID', HTMLName + '11_CHECKBOX');

      end;
      Result.Contents.AddTagAsObject(tmp);
      result.Contents.Render(s);
end;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?