🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Referencja klasy - Delphi

#346321
From: J-23
Date: Fri, 09 Feb 2018 10:39
59 lines
3193 bytes
W dniu 09.02.2018 o 09:54, Roman Tyczka pisze:
> 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;


Tak masz rację o to mi chodziło

>   
>> 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.
> 

Fakt pomieszałem ale już rozumiem. Dzięki za informacje

Pozdrawiam
Technical Details
Message-ID: <5a7d7a4a$0$673$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <5a7cf997$0$659$65785112@news.neostrada.pl> <q3wvmypqdrqv$.dlg@tyczka.com>

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!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Referencja klasy - Delphi
Newsgroups: pl.comp.lang.delphi
References: <5a7cf997$0$659$65785112@news.neostrada.pl> <q3wvmypqdrqv$.dlg@tyczka.com>
From: J-23 <Baczeklu@poczta.fm>
Date: Fri, 9 Feb 2018 11:39:06 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <q3wvmypqdrqv$.dlg@tyczka.com>
Lines: 59
Message-ID: <5a7d7a4a$0$673$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 188.146.99.229
X-Trace: 1518172746 unt-rea-a-01.news.neostrada.pl 673 188.146.99.229:22084
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit