Delphi mester, hogyan kell hívni a saját módszere egy osztály, amely egy másik modult (dokumentáció,

Hogyan kell hívni a saját módszere egy osztály, amely egy másik modul

Néha szükség van, hogy hívja a saját módszert egy másik osztály, amelynek székhelye egy másik modult. Ez ellentétes az OOP lefektetett elvek Delphi, de még meg kell csinálni. Például vegyük azt az esetet, amikor a menteni kívánt / olvasni az összes objektum tulajdonságait TPersistent örökös. mint például objektum osztály Tfont-ot.

A Delphi, vannak szabványos osztályok taposó, TWriter tárolására tervezett / olvasás az objektum tulajdonságait. Ezekben az osztályokban, mi érdekli módszerek TWriter.WriteProperties (Bíróság: TPersistent) és TReader.ReadProperty (AInstance: TPersistent). WriteProperties módszer lehetővé teszi, hogy mentse az összes tulajdonságait stream objektum TPersistent örököse. Hívás hurok ReadProperty a módszer lehetővé teszi, hogy olvassa el a folyási tulajdonságai korábban tárolt.

Tekintsük a megőrzése tulajdonságait.

A Delphi5 egyszerű. Reklámok WriteProperties, az védett TWriter osztály részt. Ok neki semmilyen problémát nem lesz:

adjunk hozzá néhány további ellenőrzések megbízhatóságának javítása a kód

Az eredmény egy olyan kód, amely lehet használni, hogy mentse a patak / olvasni a folyam összes tulajdonságait bármilyen tárgy TPersistent örököse.


Hol lehet használni? Például, akkor emlékezzen TEdit.Font TForm.Icon vagy TImage.Picture.

Mik az előnyei a módszer? Létrehoztunk egy univerzális módszer betölteni / menteni az összes tulajdonságait bármilyen tárgy TPersistent örököse. Kaptunk egy kis kód mérete. És végül megtanulta, hogy hívja a saját módszereit másik osztályba.

Mik a hátrányai? „Rossz stílus” programozás, megkerülve a OOP elvek. Most a kód implicit függő classes.pas modult. Bármilyen változás classes.pas modult. REAL TWriter, taposó, a TWriter.WriteCollection módszerek TReader.ReadCollection lehet prevesti hibakódot általunk fejlesztett. És nem tudjuk látni fordításkor alkalmazások, de abban az időben, hogy működik. De milyen gyakran változik, és újrafordítani, a modul classes.pas. Nem hiszem.


Minden a fenti kódot, akkor kap letöltésével a demo projektet. Akkor tudja használni a saját felelősségére a saját alkalmazásokat. De a legtöbb, amit meg akartam mutatni - nem szabványos programozási technikák lehet elérni érdekes eredményeket, még fel saját módszere az osztály egy másik modult.