Jaký je význam konstrukce Class of TNěco – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jaký je význam konstrukce  Class of TNěco – Delphi – Fórum – Programujte.comJaký je význam konstrukce Class of TNěco – Delphi – Fórum – Programujte.com

 

MilanL+1
Grafoman
29. 8. 2017   #1
-
0
-

Ahoj, 

v několika zdrojích na které jsem narazil při hledání na internetu se vyskytla konstrukce:

type
 TNeco = class případně class(předek)
...
end;

TNecoClass = Class of TNeco;

může my to někdo vysvětlit u TNecoClass význam,rozdíl, použití?

Nahlásit jako SPAM
IP: 91.139.9.–
Sniper
~ Anonymní uživatel
215 příspěvků
Nahlásit jako SPAM
IP: 92.240.176.–
MilanL+1
Grafoman
29. 8. 2017   #3
-
0
-

#2 Sniper
chápu to správně, že bych to mohl použít např. při polymorfismu jako referenci společného předka a pak mít třeba v pole objektů předka které bude obsahovat jeho potomky?

např:

TDoprProstredek = class(TObject)
...end;

TDoprProstredekClass = class of TDoprProstredek;

TAuto = class(TDoprProstredek)
...end;

TMotocykl = class(TDoprProstredek)
...end

TLod = class(TDoprProstredek)
...end

a pak mít třeba


TFirma = class
aDoprava : array od TDoprProstredekClass;

?

Nahlásit jako SPAM
IP: 185.112.167.–
Sniper
~ Anonymní uživatel
215 příspěvků
29. 8. 2017   #4
-
0
-

Ne, takhle dostaneš pole tříd, ne pole objektů. Na pole objektů ti stačí dát tam jenom společnýho předka (array of TDoprProstredek, nebo dokonce array of TObject).
V tom odkazu je i příklad použití (volání konstruktoru na třídě, která není při kompilaci známá, tak se volá právě na referenci třídy předané runtime).

Nahlásit jako SPAM
IP: 92.240.176.–
MilanL+1
Grafoman
30. 8. 2017   #5
-
0
-

#4 Sniper
aha takže v tom mým příkladu by to mělo být

TFirma = Class
  aDoprava :  - by mělo být pole/list referencí ? (TObject nebo TDoprProstredek)?
public
 procedure DopravaCreate(typprostredku : TDoprProstredekClass;...);
end;

Implement

procedure TFirma.DopravaCreate(typprostredku : TDoprProstredekClass;...);
begin
 aDoprava[x] := typprostredku.create(...);
end;

?

Nahlásit jako SPAM
IP: 91.139.9.–
MilanL+1
Grafoman
30. 8. 2017   #6
-
0
-

jinak dík za odkaz, nějak jsem to nemohl najít.

Já když narazím na něco nového tak se snažím pochopit význam a fungování, ikdyž to třeba zrovna nepotřebuji, tak v budoucnu se to může hodit.

A zrovna tohle by se mi mohlo hodit hned, snažím se vymyslet strukturovaný výstup dat z DB, v RaveReportu mi chybí nějaké formátovací funkce, tak mám nahranej PrintPreview, ale tam si to musím vše naformátovat podle sebe. Chtěl bych něco jako má MS ACCESS (report Header/footer, Page Header/footer, Seskupování/Group, detail - data podle obsahu např. když je poznámka tak řádka navíc, kamkoliv možnost vložení subReportu/Formu , číslování stránek "Page of pages", countery apod.) a u větších rozsahů třeba i obsah na první stránku (např roční sestava detailní tak v obsahu měsíc .. str. "OD"..."DO".

Rozmýšlím jak to vlastně udělat to pole definic jestli jako Pole/List controlů, nebo zkusit Node tree - Uložení struktury bude ve formátu bud INI nebo XML, navíc ještě některé prvky dynamicky podle předvoleb z tiskového dialogu.

Nahlásit jako SPAM
IP: 91.139.9.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý