Article View: pl.comp.lang.delphi
Article #334775Jak przechowywać Interfejsy?
From: konsul41
Date: Thu, 12 Jan 2012 10:00
Date: Thu, 12 Jan 2012 10:00
61 lines
2931 bytes
2931 bytes
Delphi XE
Robię coś w rodzaju rozszeżenia możliwości
type
IObiekt = interface;
//interfejs przechowujący zarejestrowane kontrolki - lista
zarejestrowanych kontolek
IListaObiektow = interface
function GetIObiekt(index : Integer): IObiekt;
function FindIObiekt(GUID : TGUID): IObiekt; overload;
function FindIObiekt(GUID : String): IObiekt; overload;
function AddIObiekt(obiekt : IObiekt):boolean;
procedure DeleteIObiekt(GUID : TGUID); overload;
procedure DeleteIObiekt(GUID : String); overload;
property Interfejs[index : Integer]: IObiekt read GetIObiekt;
end;
//Interfejs podstawowy dla wszystkich obiektów kontrolek
IObiekt = interface
['{B53C6B06-9968-4170-8A2C-977A4ABEF423}']
function GetLeft(): Integer;
...
property Typ : String read GetTyp write SetTyp;
end;
TListaObiektow= class(TComponent,IListaObiektow)
private
Interfejsy : array of IObiekt;
public
constructor Create(AOwner: TComponent); Override;
function GetIObiekt(index : Integer): IObiekt;
function FindIObiekt(GUID : TGUID): IObiekt; overload;
function FindIObiekt(GUID : String): IObiekt; overload;
function AddIObiekt(obiekt : IObiekt):boolean;
procedure DeleteIObiekt(GUID : TGUID); overload;
procedure DeleteIObiekt(GUID : String); overload;
end;
Pytanie czy w ten sposób można przechowywać interfejsy?
Planuję zrobić to w ten sposób:
TListaObiektow wczytuje interfejsy z dll , i jeżeli takiego interfejsu nie
ma to tworzy nowy.
Następnie Gdy potzebny jest interfejs to TListaObiektow wywołuje interfejs
udostępniając mu dane, ten je obrabia i wykonuje inne rzeczy itd...
Kończy działanie i czeka na następne wywołanie.
TListaObiektow nie zna całości interfejsu z dll wie tylko że ten jest
potomkiem IObiekt .
Pytanie 2 czy to będzie dobrze działać, kluczowe jest to że TListaObiektow
ma nie znać implementacji interfejsu w dll i ma tylko przechowywać
interfejs.
Technical Details
Message-ID:
<4f0eaf3a$0$1258$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail From: <konsul41@wp.pl> Newsgroups: pl.comp.lang.delphi Subject: Jak przechowywać Interfejsy? Date: Thu, 12 Jan 2012 11:00:26 +0100 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Lines: 64 Message-ID: <4f0eaf3a$0$1258$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 178.42.213.159 X-Trace: 1326362426 unt-rea-a-02.news.neostrada.pl 1258 178.42.213.159:5775 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit