線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1254
推到 Plurk!
推到 Facebook!

用Delphi7开发了个ASP定时组件不能用,why?

尚未結案
jw8228
一般會員


發表:1
回覆:3
積分:0
註冊:2007-04-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-17 11:58:54 IP:222.89.xxx.xxx 訂閱
我用Delphi7开发了个ASP定时组件代码如下:
unit Main;

{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Windows,Dialogs,ComObj, ActiveX, AspTlb, Timer_TLB, StdVcl;

type
Tsleep = class(TASPObject, Isleep)
private
st:Longint;
proc:TFarProc;
lhnd:THandle;
protected
procedure OnEndPage; safecall;
procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
function Get_stime: Integer; safecall;
procedure Set_stime(Value: Integer); safecall;
procedure SleepTime; safecall;
end;

implementation
uses ComServ;
type
TSleeps = procedure(dwMilliseconds:WORD);stdcall;//dwMilliseconds sleep time in milliseconds
var
ts:TSleeps;
procedure Tsleep.OnEndPage;
begin
inherited OnEndPage;
end;

procedure Tsleep.OnStartPage(const AScriptingContext: IUnknown);
begin
inherited OnStartPage(AScriptingContext);
end;

function Tsleep.Get_stime: Integer;
begin
Result:=st;
end;

procedure Tsleep.Set_stime(Value: Integer);
begin
st:=Value;
end;

procedure Tsleep.SleepTime;
begin
lhnd:=LoadLibrary('kernel32.dll');
if lhnd>0 then
begin
try
proc:=GetProcAddress(lhnd,Pchar('Sleep'));
if proc<>nil then
begin
ts:=TSleeps(proc);
ts(st);
end
else
ShowMessage('函数没有找到');
finally
FreeLibrary(lhnd);
end//end try
end
else
begin
ShowMessage('dll没找到');
end;
end;

initialization
TAutoObjectFactory.Create(ComServer, Tsleep, Class_sleep,
ciMultiInstance, tmApartment);
end.
在ASP中的代码如下:
<HTML><br /> <BODY><br /> <TITLE> Testing Delphi ASP </TITLE><br />

Timer测试





<% Set DelphiASPObj = Server.CreateObject("Timer.sleep")
DelphiASPObj.stime=3000
response.write DelphiASPObj.stime&"

"
DelphiASPObj.SleepTime
response.write DelphiASPObj.stime&"

"
DelphiASPObj.SleepTime
response.write DelphiASPObj.stime&"

"
DelphiASPObj.SleepTime
Set DelphiASPObj =nothing
%>


</BODY><br /> </HTML><br /> 但是ASP页面根本就显示不出来,请教如何解决?怎么样可以让属性值被定期读出?在线等待答案……………………………………

jw8228
一般會員


發表:1
回覆:3
積分:0
註冊:2007-04-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-17 14:03:11 IP:222.89.xxx.xxx 訂閱
ASP代码:

<% Set DelphiASPObj = Server.CreateObject("Timer.sleep")
DelphiASPObj.stime=3000
response.write DelphiASPObj.stime&"

"
DelphiASPObj.SleepTime
response.write DelphiASPObj.stime&"

"
DelphiASPObj.SleepTime
response.write DelphiASPObj.stime&"

"
DelphiASPObj.SleepTime
Set DelphiASPObj =nothing
%>

jw8228
一般會員


發表:1
回覆:3
積分:0
註冊:2007-04-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-17 14:05:38 IP:222.89.xxx.xxx 訂閱
Set DelphiASPObj = Server.CreateObject("Timer.sleep")
DelphiASPObj.stime=3000
response.write DelphiASPObj.stime
DelphiASPObj.SleepTime
response.write DelphiASPObj.stime
DelphiASPObj.SleepTime
response.write DelphiASPObj.stime
DelphiASPObj.SleepTime
Set DelphiASPObj =nothing
jw8228
一般會員


發表:1
回覆:3
積分:0
註冊:2007-04-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-04-19 08:49:57 IP:222.89.xxx.xxx 訂閱
已经有些眉目了,经过调试发现,原来是在载入API函数sleep()时没有成功,我是否应该静态载入API函数呢?
系統時間:2024-05-08 8:37:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!