倾家荡产 求回答一个问题! ( 积分: 61 )

  • 主题发起人 主题发起人 Realue
  • 开始时间 开始时间
R

Realue

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位大侠知道SafeArray的用法,能不能举出一个例子。
 
哪位大侠知道SafeArray的用法,能不能举出一个例子。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=836065
SafeArray问题,如果你会一点,为何不帮我一点,谢谢了!

下面是这个帖子里面的部分内容
SafeArray的使用非常麻烦,下面是写过的一段为ScriptControl添加自定义函数并调用的代码
,就用到了SafeArray
procedure TForm1.Button1Click(Sender: TObject);
var
n:Integer;
Parameters:PSafeArray;
bound:TSAFEARRAYBOUND;
Index:integer;
v:Variant;
begin
//
try
n:=StrToInt(inputbox('demo','请输入要计算阶乘的数',''));
except
ShowMessage('输入有误,必须输入数字,请重新运行');
Exit;
end;
ScriptControl1.Reset;
ScriptControl1.Language:='JScript';
//添加阶乘函数
scriptcontrol1.addCode('function factorial(num){'+
'result=1;for(ix=1;ix<=num;ix++){'+
'result = result*ix;};return result;};');
//参数为一维有一个元素的SafeArray
bound.lLbound:=0;
bound.cElements:=1;
try
Parameters := SafeArrayCreate(VT_VARIANT, 1, bound);
except
ShowMessage('分配内存错误');
Exit;
end;
//因为SafeArrayPutElement的第二个参数定义为const类型,
//所以index必须定义为变量并赋值才能被调用
V:=n;
Index:=0;
SafeArrayPutElement(Parameters,Index,V);
try
ShowMessage(ScriptControl1.Run('factorial',Parameters));
finally
SafeArrayDestroy(Parameters);
end;
end;



--------------------------------------
http://www.delphibbs.com/delphibbs/dispq.asp?lid=216449
怎样在Delphi中调用Matlab ActiveX接口中的GetFullMatrix和PutFullMatrix命令
 
不会,关注ing...........
 
SafeArray的使用非常麻烦,下面是写过的一段为ScriptControl添加自定义函数并调用的代码
,就用到了SafeArray
procedure TForm1.Button1Click(Sender: TObject);
var
n:Integer;
Parameters:PSafeArray;
bound:TSAFEARRAYBOUND;
Index:integer;
v:Variant;
begin
//
try
n:=StrToInt(inputbox('demo','请输入要计算阶乘的数',''));
except
ShowMessage('输入有误,必须输入数字,请重新运行');
Exit;
end;
ScriptControl1.Reset;
ScriptControl1.Language:='JScript';
//添加阶乘函数
scriptcontrol1.addCode('function factorial(num){'+
'result=1;for(ix=1;ix<=num;ix++){'+
'result = result*ix;};return result;};');
//参数为一维有一个元素的SafeArray
bound.lLbound:=0;
bound.cElements:=1;
try
Parameters := SafeArrayCreate(VT_VARIANT, 1, bound);
except
ShowMessage('分配内存错误');
Exit;
end;
//因为SafeArrayPutElement的第二个参数定义为const类型,
//所以index必须定义为变量并赋值才能被调用
V:=n;
Index:=0;
SafeArrayPutElement(Parameters,Index,V);
try
ShowMessage(ScriptControl1.Run('factorial',Parameters));
finally
SafeArrayDestroy(Parameters);
end;
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部