我在使用對象池後為何有些電腦做中間層而客戶端無法邊接它,程序調試時顯示Object not available,運行時顯示Server not availabl

  • 主题发起人 主题发起人 mydelphi2006
  • 开始时间 开始时间
To: kaida
這樣也是一種變通方法,但這對於全是自己創建類來說是可以這樣麻煩一點來做的,但如果A類與B類都是已有類,而且自己無法變更的話那就不行了。
 
我觉得很简单阿。
如果TA ->TB->TC
procedure Tc.testA();
var
a:TA;
begin
a:=TA.create;
a.test();
a.free;
end;
大家看看这样行不行?
//==============
也就是在c的方法里面直接声名A的对象,然后调用A的这个方法。
 
To: baiduan
如果A類的方法代碼中操作A類定義的保護的變量呢,而且在C類中又變更過A類的定義的保護變量,那新申請的實例A對象執行對應的方法出來的結果就不一樣了!
 
procedure TC.Test;
var
a: TA;
begin
//inherited;
?ò2???μ÷ó???ààTBμ?Test·?·¨£?
//TA.Test;
μ??òòa?ì3DTAμ?Test·?·¨
a := TA.Create;
a.Test;
a.Free;
ShowMessage('C class');
end;
 
to lz:
A被保护的私有变量一般c是没办法变动的。
难道你真的想变动吗?
如果c能变动那么;
procedure Tc.testA();
var
a:TA;
begin
a:=TA.create;
{
变动A的保护变量。
}
a.test();
a.free;
end;

再说了,如果a的方法做的本来就是失败,c还要继承他,又是失败,c还能变动a的
私有变量,更是失败,这么失败不如在c里面重新实现a的
方法好了,敲键盘是我们code的天职嘛。
 
雖然沒能做到如C++那樣的結果,但我很感謝大家的熱情回答!
由於時間緊張的問題,我隻好結貼了,因為我的工作又要開始忙碌了。
祝大家好運!
 
后退
顶部