请问如何用DELPHI编写支持ASP的WEB服务器? 请问如何用DELPHI编写支持ASP的WEB服务器? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建立一个Microsoft scriptControl即可;然后你在程序中实现asp 的六大对象。这里是一个例子,演示如何使用它://////////// TParserEdit for Microsoft scriptControl ////////////// version 1.0// Author :s.f.// Date : 2004/3/25/////////////////////////////////////////////////////////////////unit uParserEdit;interfaceuses Windows,SysUtils, Variants, Classes, ComObj, StdCtrls;type TParserEdit = class(TEdit) private function getEvaluatedVariant: Variant; public property TextValue: Variant read getEvaluatedVariant; end;procedure Register; //这里可以注解掉,不注册为静态组件,需要动态建立implementationprocedure Register; //不注册请注解该过程begin RegisterComponents('IBSSoft', [TParserEdit]);end;function TParserEdit.getEvaluatedVariant: Variant;var Parser : OleVariant; Tls : TStrings; Code : string;begin Code := Text; try Parser := CreateOLEObject('ScriptControl'); try try Parser.Language := 'VbScript'; Parser.AllowUI := TRUE; Result := Parser.Eval(Code); except Tls := TstringList.Create; try with Tls do begin Add('错误号:' + inttostr(Parser.Error.Number)); Add('源:' + Parser.Error.Source); Add('描述:' + Parser.Error.Description); Add('行:' + intToStr(Parser.Error.Line) + ',列:' + Inttostr(Parser.Error.Column)); Add('代码:' + Parser.Error.Text); Add('帮助文件:' + Parser.Error.helpFile); Add('帮助主题:' + inttostr(Parser.Error.HelpContext)); end; MessageBox(getforegroundwindow, pchar(Tls.Text), '执行错误', mb_ok or mb_IconError); finally tls.free; end; end; finally Parser := null; end; except MessageBox(getforegroundwindow, 'Com 对象错误', '无法解析', mb_ok or mb_IconError); end;end;end./////////////测试窗体调用///////////////1.注册为组件//2.加入该组件到form//3.修改ParserEdit1的text内容为 10*(1+2)+20//4.放个button 并编写OnClick事件//////////////////////////////////procedure TForm1.Button1Click(Sender: TObject);begin showmessage(String(ParserEdit1.TextValue)); //取回结果end; 不明白.我用INDY的HTTP SERVER,不过他不支持ASP.如何让他支持呢? Indy可以支持CGI和ISAPI用IdCGIRunner组件,网上去下载了通过ISAPI调用ASP.dll能实现ASP的支持,不过具体方法知道的人不多 如何调用ASP.DLL编写支持ASP的WEB服务器啊? 能给paramstr赋值么 请问如何使用adoquery筛选出来的数据 请教大家关于exe导出函数的问题? 关于引用datamodule的问题 跪求一个简单查询的例子,在线等 还是关于全局变量的问题,给分100 随机取数 网络围棋 谁能给我创建窗体的简单例子? 在线!! 如何使用SkinEngine? 一个诡异的问题,在线程中进行Synchronize 后,不动鼠标,不进行任何操作就会不能执行下去! 如何实现image控件有鼠标移出显示一张图片,鼠标移入是另外一张图片
//////////// TParserEdit for Microsoft scriptControl ////////////
// version 1.0
// Author :s.f.
// Date : 2004/3/25
/////////////////////////////////////////////////////////////////unit uParserEdit;interfaceuses
Windows,SysUtils, Variants, Classes, ComObj, StdCtrls;
type
TParserEdit = class(TEdit)
private
function getEvaluatedVariant: Variant;
public
property TextValue: Variant read getEvaluatedVariant;
end;procedure Register; //这里可以注解掉,不注册为静态组件,需要动态建立
implementationprocedure Register; //不注册请注解该过程
begin
RegisterComponents('IBSSoft', [TParserEdit]);
end;function TParserEdit.getEvaluatedVariant: Variant;
var
Parser : OleVariant;
Tls : TStrings;
Code : string;
begin
Code := Text;
try
Parser := CreateOLEObject('ScriptControl');
try
try
Parser.Language := 'VbScript';
Parser.AllowUI := TRUE;
Result := Parser.Eval(Code);
except
Tls := TstringList.Create;
try
with Tls do
begin
Add('错误号:' + inttostr(Parser.Error.Number));
Add('源:' + Parser.Error.Source);
Add('描述:' + Parser.Error.Description);
Add('行:' + intToStr(Parser.Error.Line) + ',列:' +
Inttostr(Parser.Error.Column));
Add('代码:' + Parser.Error.Text);
Add('帮助文件:' + Parser.Error.helpFile);
Add('帮助主题:' + inttostr(Parser.Error.HelpContext));
end;
MessageBox(getforegroundwindow, pchar(Tls.Text), '执行错误',
mb_ok or mb_IconError);
finally
tls.free;
end;
end;
finally
Parser := null;
end;
except
MessageBox(getforegroundwindow, 'Com 对象错误', '无法解析', mb_ok or
mb_IconError);
end;
end;
end.
/////////////测试窗体调用/////////////
//1.注册为组件
//2.加入该组件到form
//3.修改ParserEdit1的text内容为 10*(1+2)+20
//4.放个button 并编写OnClick事件
//////////////////////////////////procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(String(ParserEdit1.TextValue)); //取回结果
end;
用IdCGIRunner组件,网上去下载了通过ISAPI调用ASP.dll能实现ASP的支持,不过具体方法知道的人不多