I'm trying to learn how to use Interfaces. I'm going by Delphi's documentation. I know that I'm ignoring GUIDs but as far as I can tell from the docs there not vital. If there are how can I generate my own?? ^_^ But I'm getting real stuck. The doc's on Delphi's web page mentions NOTHING about implementing IUnknown's methods. Do I have to?
Thanks for the help. ^_^
The code at the bottom generates the following compiler messages: ########## CONSOLE OUTPUT ############
bash-2.05b$ ppc386 qbase.pp
Free Pascal Compiler version 1.1 [2003/05/10] for i386 Copyright (c) 1993-2002 by Florian Klaempfl
Target OS: Linux for i386
Compiling qbase.pp
qbase.pp(14,7) Error: No matching implementation for interface method "IUnknown.QueryInterface(const TGuid,out <Formal type>):LongInt" found qbase.pp(14,7) Error: No matching implementation for interface method "IUnknown._AddRef:LongInt" found
qbase.pp(14,7) Error: No matching implementation for interface method "IUnknown._Release:LongInt" found
qbase.pp(28,1) Fatal: There were 3 errors compiling module, stopping bash-2.05b$
########### END OF CONSOLE OUTPUT ###########
########### SOURCE CODE #####################
{$Mode ObjFPC}
Unit QBase;
Interface
Type
iQObject
= Interface
Procedure SetName(iName: String);
Function GetName: String;
Property Name : String;
end;
tQObject
= Class (iQObject)
Protected
fName : String;
Public
Constructor Create;
Destructor Destroy; Override;
Procedure SetName(iName: String);
Function GetName: String;
Property Name : String
Read GetName
Write SetName;
end;
Implementation
Constructor tQObject.Create;
Begin
fName := 'tQObject';
end;
Destructor tQObject.Destroy;
Begin
end;
Procedure tQObject.SetName(iName: String);
Begin
Writeln('Renaming ', fName,' to ', iName);
fName := iName;
end;
Function tQObject.GetName: String;
Begin
Result := fName;
end;
end.