在 IW.HTTP.Cookie 單元提供有兩個相關類: THTTPCookie、TCookieList; 另外 IWServerController 還有一個 CookieOptions 選項.
但實用起來一般用不到它們.
{讀取 Cookie; 放在 OnCreate 中不太合適, 因為在切換頁面時, 如果窗口沒被銷毀時 OnCreate 也不執行}
procedure TIWForm1.IWAppFormRender(Sender: TObject); //OnRender
begin
IWEdit1.Text := WebApplication.Request.CookieFields.Values['IWEdit1'];
end;
{寫入 Cookie; 應該把它放在什麼事件中呢? 很傷腦筋, 譬如 OnDestroy 就不大合適, 因為在關掉頁面時它並不執行}
procedure TIWForm1.IWEdit1AsyncChange(Sender: TObject; EventParams: TStringList); //IWEdit1.OnAsyncChange
begin
WebApplication.Response.Cookies.AddCookie('IWEdit1', IWEdit1.Text, '', Now+30); //參數 1: Cookie 名;
//參數 2: Cookie 值;
//參數 3: 有效范圍, 空表示當前站點;
//參數 4: 有效時間, Now+30 表示 30 天內有效
end;
{遍歷 Cookie}
procedure TIWForm1.IWButton1Click(Sender: TObject);
var
str: string;
begin
for str in WebApplication.Request.CookieFields do IWMemo1.Lines.Add(str);
end;
{關閉窗口}
procedure TIWForm1.IWButton2Click(Sender: TObject);
begin
WebApplication.Terminate;
end;