🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346320

Re: Referencja klasy - Delphi

#346320
From: Roman Tyczka
Date: Fri, 09 Feb 2018 08:54
53 lines
2810 bytes
On Fri, 9 Feb 2018 02:29:59 +0100, J-23 wrote:

> Nic się na grupie za specjalnie nie dzieje a mi potrzeba odświeżyć 
> pamięć. Bo teraz mało 'skrobie' Delphi/Lazarusie
> 
> mamy  klasę SkinManager
> 
> type
> TSkinManager = class;
> 
> 
> type
> TSkinManagerClass = of TSkinManager  - referencje do klasy


Jeśli już to

TSkinManagerClass = class of TSkinManager;
 
> mamy klasę Skins
> 
> type
> TSkins = class(TComponent) - leży na każdej formie
> 
> I właśnie o referencje mi chodzi, czy dobrze rozumiem, każdy Nowy obiekt 
>   utworzony z klasy TSkins posiada dostęp do referencji TSkinManagerClass
> i teraz załóżmy że w TSkinManager posiadam metode do zmiany skórki i 
> wedłg tego co ja myśle wywołując tę metodę zmienią się skóry na 
> wszystkich formatkach.

Ja nie bardzo rozumiem co kombinujesz. W każdym razie nie ma żadnego
związku pomiędzy klasami TSkinManager i TSkins (przynajmniej w tym kodzie
jaki tu wkleiłeś). A to czy każdy obiekt TSkins posiada dostęp do typu
klasowego TSkinManagerClass zależy od tego czy ten typ będzie publiczny i
widoczny (w zasięgu obiektu powstałego z klasy TSkins). Ponadto fakt, że
TSkinManagerClass to typ klasowy od typu TSkinManager nie powoduje w żaden
magiczny sposób, że zmiana skórki w jednej klasie rozpropaguje się po
wszystkich. Bo niby jakim cudem?
Tak naprawdę typ klasowy pozwala jedynie przechowywać typ klasy (lub klas
potomnych) i np. z niego tworzyć instancje, różne, w zależności od
przypisanego typu właściwego.
 
> A skoro tak - o ile nie jest błędne moje myślenie to wytłumaczcie mi 
> czym ta konstrukcja różni się od Interfejsu bo normalnie to do tego 
> zadania właśnie użył bym interfejsu, który by zdał 100% egzamin czy ta 
> konstrukcja ma za zadanie właśnie wyeliminować użycie interfejsu? Czy 
> może ma jeszcze jakieś właściwości?

A już co z tym ma wspólnego interfejs to kompletnie nie wiem.

-- 
pozdrawiam
Roman Tyczka
Technical Details
Message-ID: <q3wvmypqdrqv$.dlg@tyczka.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <5a7cf997$0$659$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Roman Tyczka <noemail@because.no>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Referencja klasy - Delphi
Date: Fri, 9 Feb 2018 09:54:27 +0100
Organization: ATMAN - ATM S.A.
Lines: 53
Sender: romek@tyczka.no.found
Message-ID: <q3wvmypqdrqv$.dlg@tyczka.com>
References: <5a7cf997$0$659$65785112@news.neostrada.pl>
NNTP-Posting-Host: 94.75.90.137
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1518166469 24659 94.75.90.137 (9 Feb 2018 08:54:29 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Fri, 9 Feb 2018 08:54:29 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.84
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit