Thread View: pl.comp.lang.delphi
3 messages
3 total messages
Started by J-23
Fri, 09 Feb 2018 01:29
Referencja klasy - Delphi
Author: J-23
Date: Fri, 09 Feb 2018 01:29
Date: Fri, 09 Feb 2018 01:29
35 lines
2055 bytes
2055 bytes
Witam 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 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. 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? Pozdrawiam
Re: Referencja klasy - Delphi
Author: Roman Tyczka
Date: Fri, 09 Feb 2018 08:54
Date: Fri, 09 Feb 2018 08:54
53 lines
2810 bytes
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
Re: Referencja klasy - Delphi
Author: J-23
Date: Fri, 09 Feb 2018 10:39
Date: Fri, 09 Feb 2018 10:39
59 lines
3193 bytes
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
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads