TO chenshaizi:
试过了,确实不行。
to why_wy:
dcu是重新编译过来的
我都把所有的provider都删除了,就./Program Files/Borland/Delphi7/Source/Vcl留了我修改后的pas 和 dcu ,把自己的程序也拷贝到Program Files/Borland/Delphi7/Source/Vcl下面去了,但死活不给执行!!!!
代码就改成下面这样了:
function TProviderObject.DataRequest(Input: OleVariant): OleVariant;
begin
ShowMessage(Input);//就加上这么一句
CheckProvider;
if VarIsArray(Input) and (VarArrayHighBound(Input, 1) >= 1) and
(VarType(Input[0]) = varInteger) and (VarType(Input[1]) = varInteger) and
(Input[0] = DRSig) then
begin
case Input[1] of
DRParams: Result := FProvider.FetchParams;
DRRefresh: Result := FProvider.FetchData(Input[2]);
end;
end else
Result := FProvider.DataRequest(Input);
end;
相应的这里我也改了:
function TCustomProvider.DataRequest(Input: OleVariant): OleVariant;
begin
ShowMessage(Input);///////
if Assigned(FOnDataRequest) then
Result := FOnDataRequest(Self, Input) else
Result := NULL;
end;
请各位帮忙看看——试一试。