Autor Téma: Obsah objektov je po prehodení z jedného zoznamu do druhého neprístupný  (Přečteno 390 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4528
  • Karma: 40
    • Verze Delphi: XE7 professional

Kód: Delphi [Vybrat]
  1. type
  2.     FBackupObjects: TObjectList<TCustomObject>;  // je jedno či to je TObjectList alebo TList
  3.     FObjects: TObjectList<TCustomObject>;
  4. ....
  5. procedure TGlobalVar.RestoreObejcts;
  6. var
  7.   Obj: TCustomObject;
  8. begin
  9.   FObjects.Clear;
  10.  
  11.  
  12.   for Obj in FBackupObjects do  // Ak to sprístupním, tak objekty majú všetky hodnoty neprístupné.
  13.     FObjects.Add(Obj);
  14. end;
  15.  
  16.  
  17. procedure TGlobalVar.BackupObejcts;
  18. var
  19.   Obj: TCustomObject;
  20. begin
  21.   for Obj in FObjects do
  22.     FBackupObjects.Add(Obj);
  23. end;
  24.  
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4528
  • Karma: 40
    • Verze Delphi: XE7 professional
Citace
Jedno to byt nemusi, protoze TObjectLis muze objekty vlastnit a tim Clear je uvolnit.
O tom viem. Zariadil som sa podľa toho. Keby som objekty zničil, tak by boli nil. A to nie sú. Ja som len pre istotu vyskúšal oba varianty. Správajú sa rovnako.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4528
  • Karma: 40
    • Verze Delphi: XE7 professional
Nie nevlastní ich.
Kód: Delphi [Vybrat]
  1. FObjects := TObjectList<TCustomObject>.Create(False);
Preto tomu nerozumiem. Objekty som kontroloval priamo vo funkcii RestoreObejcts. Tam sú po priradení v poriadku.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4528
  • Karma: 40
    • Verze Delphi: XE7 professional
Už som to našiel. To je daň za automatizáciu. Že mi to neprišlo na um skôr. Mne sa automaticky ničia. Už viem že ich musím prehodiť až po zničení. A tak tu mám zbytočné príspevky. Dosť ma to štve - tie zbytočné príspevky.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4528
  • Karma: 40
    • Verze Delphi: XE7 professional
Možno prinesie.
Problém je v tom, že mám hlavný a iný formulár. V hlavnom mám v udalosti OnShow RestoreObjects. V inom formulári v časti OnDestroy mám DestroyObjects.
Ovšem najprv zbehne udalosť MainForm.OnShow a až potom formxx.DestroyObjects
Dá sa to poradie nejako zmeniť? Kde mám správne zavolať MainForm.Show? V inom formulári sa mi to nepodarilo, a umiestnenie po MainForm.ShowModal to tiež nerieši.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2609
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Problém je v tom, že mám hlavný a iný formulár. V hlavnom mám v udalosti OnShow RestoreObjects. V inom formulári v časti OnDestroy mám DestroyObjects.
Ovšem najprv zbehne udalosť MainForm.OnShow a až potom formxx.DestroyObjects
Dá sa to poradie nejako zmeniť? Kde mám správne zavolať MainForm.Show? V inom formulári sa mi to nepodarilo, a umiestnenie po MainForm.ShowModal to tiež nerieši.
Koukam, ze jsi na dobre ceste ta data vyhazet formularu (view) a zalozit model ;-)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4528
  • Karma: 40
    • Verze Delphi: XE7 professional
Ten model bol viackrát spomínaný. Ale bez nejakého príkladu to nezvládnem. No žiaden, pre mňa vhodný, som nenašiel. Teoretické úvahy a ich grafická prezentácia mi nepomôžu.
Citace
Tohle bych na udalosti nevesel. Mas prece nejakou akci, tak v ni spust co potrebujes.
Možno na niečo prídem. Musím si na to poriadne sadnúť a prípadne si urobiť schému ako mi to vlastne funguje.
Do kelu s tým automatickým formátovaním. Keď som pod napätím, tak si to zbúdam skontrolovať.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.