首页  编辑  

IntraWeb开发学习笔记(四)

Tags: /超级猛料/Web.互联网开发技术/Intraweb/   Date Created:

IntraWeb学习笔记(四)

作者:bnPYSse(原创)

近几天,在网上发现一个用IntraWeb开发的网站http://www.intrawebdeveloper.com,感觉还不错,只是速度有点太慢了。看来,IntraWeb如果想要走向Internet的真正应用,速度应该是其解决的首要问题。

里面有一些介绍应用经验的小文章,不敢独享,特翻译出来与大家共享(不过,E文水平有限),内容不是很多,大家将就着看吧。并真诚欢迎您给予批评指正。:)

16、在IntraWeb中如何使用Cookies

创建Cookies:

procedure TIWForm1.CreateTheCookie;
var
 MyCookies: TstringList;
begin
 try

  MyCookies := TstringList.create;
  MyCookies.Add('CookieName1=CookieValue1');
  MyCookies.Add('CookieName2=CookieValue2');
  Webapplication.Response.SetCookieField(
  MyCookies, { 要设置的Cookies}
  '', { 发送到Cookies的域名,如果为空的话,则使用当前的 }
  '', { 发送到Cookies的路径,如果为空的话,则使用任意路径 }
  Now+1, { Cookies的有效期 }
  False { 是否使用加密的连接 }
  );
 finally
  MyCookies.free;
 end;
end;

读取Cookies:

procedure TIWForm1.ReadTheCookie;
var
 Value1: String;
 Value2: String;
begin
 Value1 := webapplication.request.cookieFields.values['CookieName1'];
 Value2 := webapplication.request.cookieFields.values['CookieName2'];
end;
17、在标签如何加上空格

也许有的朋友想在标签上加上空格,但如果只是使用空格键的话,在生成HTML文件时,则会将这个“空白”删掉,而只有使用“&nbsp”,才能确实形成在网页上所想要的“空白”。例如:

IWLabel1.Caption := '& nbsp ; & nbsp ; & nbsp ; Three Spaces';
18、如何在IntraWeb中取用传递的URL参数

例如有这样一个URL地址:http://www.SomePlace.com/SomeApplicationName?value1=Dog&value2=Cat

而想着在IntraWeb中取得这些参数的值,要如何实现呢?可以按以下的思路:

procedure TIndex.IWAppFormCreate(Sender: TObject);
var
 ValueString1, ValueString2: string;
begin
 ValueString1 := WebApplication.RunParams.Values[ 'value1' ];
 ValueString2 := WebApplication.RunParams.Values[ 'value2' ];
end;
19、如果控制Input中的光标

这种情况只发生在IE当中,当页面刷新时,输入盒中的光标会重新回到开始位置上去。下面的方法则可以解决刷新页面时的光标重定位问题。

首先,要为控件的ScriptEvents.OnFocus增加一点代码:

var range = this.createTextRange();
range.moveStart('character', this.value.length);
range.select();

然后,打开窗体的onRender事件,并加入:

ComponentName.setFocus;
20、如何获得当前的Session数目

也许有时,需要获得取当前的会话数目,可以借用以下的代码段:

procedure TIWForm1.IWButton1Click(Sender: TObject);
var
 LCount: integer;
begin
 try

  LCount := GSessions.LockList.Count;
 finally
  GSessions.UnlockList;
 end;
end;

如想更自由地来实现对所有会话进行计数,则可以在ServerController.OnNewSession或者SeverController.OnCloseSessionk中自主编程。

实在不好意思,这次的内容并不多。如需交流,请联系我:bnpysse@sina.com