» »

[Delphi] Polja objektov

[Delphi] Polja objektov

alesp56 ::

Programiram eno aplikacijo ki bi naj dišala po OOP in imam pri tem ne malo težav. Namreč prva, ki se pojavi je ta da imam svoj razred ki deduje od TObject in bi rad shranil v drugem razredi v neko polje/list/array/collection/karkoli več teh objektov kot je to možno pri vseh "novejših" programskih jezikih. Žal sem omejen še na D2005, kjer mislim da ni generikov.
Primer imam razred TAvto in bi rad v razred TGaraža v polje Avtomobili shranil več primerkov razreda TAvto... malce banalen primer ampak razumete kaj me muči. :D
Poskušal sem z TObjectList in dinamičnim poljem a mi nekako ne uspeva.
Ve kdo za kakšen uporaben (neuporabnih je malo morje na netu) primer kako se to pravilno dela v Delphiju.
Torej kako vi manipulirate s temi zadevami?

Hvala!
in to je to...

imagodei ::

Ah, pri "novejših" se da, pri Delphiju pa ne? ;)

Sam nisem preveč not, bom pa link do teme poslal sodelavcu. Če se mu bo dal, ti bo mogoče kaj napisal na to temo...
- Hoc est qui sumus -

dbevfat ::

Kaj je narobe s TObjectList oz. kje se ti zalomi?
nvr2fat

alesp56 ::

Bom takole reku... malo sem se razvadil z uporabo .NET in Java stilom programiranjem in sem pozabil na določene zadeve, ki gredo tukaj malo drugače. Sedaj sem uporabil kar dinamično polje objektov in pač sam spisal tiste metode ki jih potrebujem nad polji. Zaenkrat stvari funkcionirajo tako kot je treba.

No mogoče par informacij glede TObjectList-a. Je kakšna druga rešitev še kot da napišem svoj class ki bo inherital metode TObjectLista in jih potem napišem z uporabo mojega razreda? V nasprotnem primeru je treba vse skos castat v pravilne objekte ne.

Drugače pa hvala zaenkrat. :)
in to je to...

dbevfat ::

alesp56 je izjavil:

No mogoče par informacij glede TObjectList-a. Je kakšna druga rešitev še kot da napišem svoj class ki bo inherital metode TObjectLista in jih potem napišem z uporabo mojega razreda? V nasprotnem primeru je treba vse skos castat v pravilne objekte ne.

Ja, subclass ali casting povsod. Prva rešitev je boljša dolgoročno, druga pa mogoče postane tečna s časom. S tem, da ne rabiš castati pri dodajanju (se mi zdi), samo pri branju objektov s seznama.
nvr2fat

shinca ::

Ja, samo pri branju iz liste moraš castat. Notri lahko daš poljuben objekt.

Zato je po moje boljša rešitev, da pač kreiraš svoj razred, izpelješ ga iz TObjectList, pa popraviš dodajanje (preverjaš, če je pravi tip objekta) in branje (castanje v tip, ki je v listi).

krho ::

Kot je rekel shinica. Extendaš TObjectList.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

osnove v Javi - zvezdice

Oddelek: Programiranje
403573 (2795) Tutankhamun
»

[c++] standardni c++ in dogodki(events)

Oddelek: Programiranje
121759 (1584) yeti
»

[c#] Win Forms osveževanje statusa kotrol

Oddelek: Programiranje
5889 (851) zhigatsey
»

Dodajanje ukazov v menije (OpenDialog1, SaveDialog1)

Oddelek: Programiranje
13989 (882) CHAOS
»

Delphi problem- zapiranje programa

Oddelek: Programiranje
71163 (1109) c3R4R

Več podobnih tem