我是想把類和介面單元分開成兩個單元 然后只要參考介面單元呼叫函式
類單元
unit Un_Class;
interface
uses System.Classes,Un_Interface;
type
TTest=class(TInterfacedObject,ITest)
public
function getdate(value:string):string;overload;
function getvalue:string;overload;
end;
implementation
{ TTest }
function TTest.getdate(value:string):string;
begin
Result:=value
end;
function TTest.getvalue: string;
begin
Result:='fffff';
end;
end.
介面單元
unit Un_Interface;
interface
uses System.Classes;
type
ITest=interface(IInterface)
['{4F3260EB-99D2-47E4-89BE-7D8862CB05F7}']
function getdate(value:string):string;
function getvalue:string;
end;
implementation
end.
最后在主視窗呼叫
uses Un_Interface;
procedure TForm1.Button1Click(Sender: TObject);
var aa:ITest ;
begin
ShowMessage(aa.getvalue);
end;
執行會出現地址錯誤。 請問怎么整呢?
uj5u.com熱心網友回復:
首先要創建物件,再賦值給介面變數。uses Un_Class,Un_Interface;
procedure TForm1.Button1Click(Sender: TObject);
var aa:ITest ;
begin
aa := TTest.Create;
ShowMessage(aa.getvalue);
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/94535.html
標籤:網絡通信/分布式開發
上一篇:面向介面編程問題
下一篇:想獲取到TWebbrowser中打開網頁內訪問的所有檔案連接,包括javascript通過XMLHTTP訪問的網頁地址
