我做的一切与cookies示例完全相同(此处显示为http://www.atozed.com/intraweb/docs/Develop/Cookies.aspx),但它没有编译,它说“[DCC错误] Login.pas(38):E2035没有足够的实际参数”和将“courser”放在“WebApplication.Response.Cookies.Add”
之后 我错过了什么? 我需要添加一个单位吗?我使用Delphi XE2和Intraweb 2.1.23 哦,我是intraweb的新手......
请帮忙 谢谢
答案 0 :(得分:3)
确保 httpapp 在您的uses子句中并尝试以下内容:
procedure TIWServerController.SetCookie;
var
mCookie: TCookie;
begin
mCookie := WebApplication.Response.Cookies.Add;
with mCookie do begin
Name:='mycookie';
Value:='mycookievalue';
Expires := Date + 30;
end;
end;
答案 1 :(得分:2)
这是一个工作代码块,它将在Intraweb 12.2.8 XE2
中创建一个Cookie确保在uses子句中添加 IW.HTTP.Cookie 。
当然你必须修改TiwfrmMain以匹配你的iwform并通过以下方式声明程序:procedure MakeCookie;在你的
procedure TiwfrmMain.MakeCookie;
var cookieMain: THttpCookie;
begin
try
cookieMain:= THttpCookie.Create('email',editLogin.Text,'',Date + 999);
WebApplication.Response.Cookies.Add(cookieMain);
cookieMain.free;
except
end;
end;
然后您也可以通过以下方式获取:
procedure TiwfrmMain.SetCookie;
begin
try
if WebApplication.Request.CookieFields.IndexOfName('email')> -1 then
editLogin.Text := WebApplication.Request.CookieFields.Values['email'];
except
end;
end;
njoy:)
答案 2 :(得分:-2)
我的代码:
procedure SetCookie(AIWApplication: TIWApplication; AName, AValue: string; AExpiration: TDate);
var
LCookie: TCookie;
begin
AIWApplication.Response.Cookies.Add(LCookie);
with LCookie do
begin
Name := AName;
Value := AValue;
Expires := AExpiration;
end;
end;