Výsledky 1 až 24 z 24

Téma: [Delphi] Nepřímé připojení dat k objektu

Hybrid View

Předcházející příspěvek Předcházející příspěvek   Další příspěvek Další příspěvek
  1. #1

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    Citace Původně odeslal Smitka Zobrazit příspěvek
    Neporadím ti úplně konkrétně, protože to úplně nechápu... ale zkusil bych se podívat na přetížené (overloaded) funkce - nadefinuješ stejné fce (snad i třídy), s různými parametry a ono se to bude chovat podle toho jaké parametry k tomu dáš...
    "Snad i třídy" To jde? Jinak zajímavá myšlenka. Jdu se pokusit to nějak zprovoznit. Kdyby měl někdo další nápady, tak sem s nimi
    NTB MSI EX600, CPU Intel Core 2 Duo T5550@1,83Ghz, 2GB RAM, GF8400M-G 256MB, HDD 320GB...

  2. #2

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    2 Anduril: Tak toto se jeví jako jednodušší myšlenka Jen pro upresneni to ma byt seznam cyklicky s hlavou a mame implementovat metody pro vkládání na konec a za aktualni prvek, ale to na situaci moc nemění. Snad to dám do kupy, díky.
    NTB MSI EX600, CPU Intel Core 2 Duo T5550@1,83Ghz, 2GB RAM, GF8400M-G 256MB, HDD 320GB...

  3. #3
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    329

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    Jj, tak to uz je jedno jak to mezi sebou vnitrne propojis, na myslence to nic nemeni
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  4. #4

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    Tak už jsem narazil. Mám v Třídě TSingleList tyto metody:
    constructor Vytvor(Hlava:TPrvek); Virtual;
    procedure Zrus(Parametr:Boolean);
    function JePrazdny:Boolean;
    function ZpristupniPrvni:TPrvek;
    procedure VlozPrvni(Prvni:TPrvek);
    procedure OdeberPrvni;
    procedure VlozNaslednika(Dalsi:TPrvek);
    procedure OdeberNaslednika;
    procedure SetAktualni(Prvek:TPrvek);
    function GetAktualni:TPrvek;

    Vetšina z nich má parametr typu TPrvek. Jenze já vytvářím objekty z třídy dědící po TPrvek, dejme tomu TPotomek1,TPotomek2 a TPotomek3. Z toho plyne že bych musel každou metodu s parametrem typu Tprvek přetížit 3x. Neexistuje jednodušší řešení?

    BTW: Jak bych přetížil třeba tuto funkci?
    function TSingleList.ZpristupniPrvni:TPrvek;
    begin
    ZpristupniPrvni:=FHlava.ZpristupniNaslednika;
    end;
    To asi nejde ne? Bych ji musel vlozit do třídy TPotomek a dat ji typ prislusneho potomka.
    Neztracíte se v tom? Ja jo
    NTB MSI EX600, CPU Intel Core 2 Duo T5550@1,83Ghz, 2GB RAM, GF8400M-G 256MB, HDD 320GB...

  5. #5

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    Citace Původně odeslal Chuck Zobrazit příspěvek
    "Snad i třídy" To jde? Jinak zajímavá myšlenka. Jdu se pokusit to nějak zprovoznit. Kdyby měl někdo další nápady, tak sem s nimi
    Myslim, ze by to slo udelat pomoci ruznych konstruktoru s ruznyma parametrama. Ale na 100% to nereknu, jsem trochu zblblej z javy... Je to jen napad...

  6. #6
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    329

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    Nevim jak v Delphi (treba to neumi? nevim), ale imho by melo stacit, jak jsem psal, pri vkladani prvku tento pretypovat na TPrvek. Jelikoz tve tridy dedi z TPrvek a seznam pouziva pouze tridu TPrvek, pak by to melo stacit...
    Ten seznam by mel byt obecny, nevazat se na konkretni tridy, pouze na TPrvek. Nepotrebujes v nem pracovat s daty, takze tridy TPotomek1 a pod te vubec nezajimaji. Kdyz ze seznamu pak TPrvek dostanes, pretypujes si ho zpet na TPotomekX.
    Naposledy upravil Anduril; 13.03.2008 v 07:36.
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  7. #7

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    Stejne jako v jinych objektove orientovanych jazycich se nemusi nic pretypovavat - resp. udela se tam implicitni pretypovani.


    Napr:

    Kód:
    TPrvek = class
     procedure Zpracuj(co: TPrvek);
    end;
    
    TDalsiPrvek = class (TPrvek)
    end;
    
    TDalsi2Prvek = class (TPrvek)
    end;
    v kodu pak muzes napsat toto:

    Kód:
    var 
      prvek: TPrvek;
      dalsiPrvek: TDalsiPrvek;
      dalsi2Prvek: TDalsi2Prvek;
    begin
      prvek = TPrvek.Create();
      dalsiPrvek = TDalsiPrvek.Create();
      dalsi2Prvek = TDalsi2Prvek.Create();
      prvek.Zpracuj(dalsiPrvek);
      prvek.Zpracuj(dalsi2Prvek);
    end;
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

  8. #8
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    329

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    Jo, mas pravdu..smerem na TPrvek to pujde samo, ale zpet (z TPrvek na vlastni tridu) imho ne, tam to bude treba pretypovat.
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  9. #9

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    Jj, je to tak. Jsem zapomněl vytvořit seznam, tak mě to házelo chybu na řádku kde jsem vkládal do metody parametr jiného typu a já myslel že je to tím...
    NTB MSI EX600, CPU Intel Core 2 Duo T5550@1,83Ghz, 2GB RAM, GF8400M-G 256MB, HDD 320GB...

  10. #10

    Standardní Re: [Delphi] Nepřímé připojení dat k objektu

    Nejak se mi nedaří zprovoznit vypsání dat. Asi jsem to nepochopil správně. Chci to realizovat asi takto: Budu procházet seznam od začátku do konce a na každém prvku bych chtěl vyvolat metodu VypisSe. Podle výše uvedených poznatků predpokládám že prvky jsou v seznamu uloženy jako typ TPrvek(implicitni pretypovani). Ted nemůžu přijít na myšlenku jak přetypovat prvek seznamu zpět na typ TPotomekX, abych z něho dostal data. Respektive podle čeho poznám na jaký typ se to má přetypovat, když jsou tři varianty?
    Snad jsem to napsal srozumitelne...
    NTB MSI EX600, CPU Intel Core 2 Duo T5550@1,83Ghz, 2GB RAM, GF8400M-G 256MB, HDD 320GB...

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. ipconfig - Vista
    Založil -Braba- v sekci fóra Sítě
    Odpovědí: 2
    Poslední příspěvek: 11.03.2008, 11:31
  2. Sdílení internetového připojení ve Windows Vista
    Založil sergiX v sekci fóra Sítě
    Odpovědí: 0
    Poslední příspěvek: 29.12.2007, 20:18

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •