Autor Téma: Embarcadero príklad  (Přečteno 2055 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Embarcadero príklad
« Odpověď #15 kdy: 11-12-2018, 11:17:33 »
Citace
Jelikož ReportMemoryLeaksOnShutdown je testována až ve finalization sekci FastMM4.pas tak to jednoznačně není pravda, navíc nechápu jak by to mělo fungovat, protože i z různých formulářů můžeš alokovat třeba globální proměnné nebo cokoliv jiného a ten memory manager by to v tvém případě reportoval. Prostě je to nesmysl, možná si to pleteš se zavřením posledního formuláře.
Teraz som si overil, že niektoré veci hlási už pri uzavretí fromulára. Pokus o uvoľnenie už uvoľneného objektu.
Ale máš pravdu. Nie je to MemoryLeak. To som nerozlíšil/neuvedomil si.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline František

  • Guru
  • *****
  • Příspěvků: 500
  • Karma: 6
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Embarcadero príklad
« Odpověď #16 kdy: 12-12-2018, 09:34:55 »
takže to patrí do
Kód: Delphi [Vybrat]
  1. initialization
  2. finalization
?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Embarcadero príklad
« Odpověď #17 kdy: 12-12-2018, 10:47:59 »
Mne tu napísali, že tie dve sekcie sa používajú v špeciálnych prípadoch (asi v spojení s interface) a bežných prípadoch sa to nemá  používať. Veď použi ten TObjectDictionary a nemáš čo riešiť. A ako písali, uvoľniť/zlikvidovať to v MyForm.OnDestroy
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline František

  • Guru
  • *****
  • Příspěvků: 500
  • Karma: 6
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Embarcadero príklad
« Odpověď #18 kdy: 14-12-2018, 11:36:45 »
v podstate ten slovnik pouziavaju vsetky formulare, ale vsetky su volane z hlavneho, tak ok OnKrijejt, OnDestroj

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Embarcadero príklad
« Odpověď #19 kdy: 14-12-2018, 13:28:40 »
Máš ešte jednu možnosť. Slovník vytvoriť i zničiť v súbore *.dpr. + tým pádom nebudeš musieť robiť prepojenie na hlavný formulár. To občas robí problémy s kruhovými odkazmi. Ja ani v jedinom svojom formulári nemám odkaz na hlavný fromulár.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 147
  • Karma: 8
    • Verze Delphi: XE2
Re:Embarcadero príklad
« Odpověď #20 kdy: 14-12-2018, 14:47:03 »
Osobne bych se snazil tyto objekty oddelit od UI (tedy formularu a jeho udalosti), ale to uz je jine tema...

Mám taky tento názor.
V tomto případě se mi jeví jako nejvhodnější   použít Datamodul   
IMHO  lepší než   *.dpr  nebo  sekce "ini/fini"

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 147
  • Karma: 8
    • Verze Delphi: XE2
Re:Embarcadero príklad
« Odpověď #21 kdy: 14-12-2018, 15:17:09 »
Volil bych spis separatni modul (unit) a v nem implementoval singleton.

Tuto techniku prakticky vůbec nepoužívám , takže je mi bližší D.M .

Offline Ondřej Pokorný

  • Guru
  • *****
  • Příspěvků: 815
  • Karma: 59
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:Embarcadero príklad
« Odpověď #22 kdy: 14-12-2018, 17:15:58 »
Máš ešte jednu možnosť. Slovník vytvoriť i zničiť v súbore *.dpr. + tým pádom nebudeš musieť robiť prepojenie na hlavný formulár. To občas robí problémy s kruhovými odkazmi.

Tak takovou čípovinu jsem neslyšel už dlouho. No třeba jenom nechápu.

Ja ani v jedinom svojom formulári nemám odkaz na hlavný fromulár.

Toto tě naopak zase ctí.
Embarcadero Technology Partner

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Embarcadero príklad
« Odpověď #23 kdy: 14-12-2018, 17:55:27 »
Citace
Tak takovou čípovinu jsem neslyšel už dlouho. No třeba jenom nechápu.
Aspoň má úplne jasne dané ako to nerobiť :D 
A pre mňa to znamená pozrieť do dpr a upraviť ho. Vytváram tam globálny objekt (globálne premenné), ktorý používam počas celej životnosti programu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Ondřej Pokorný

  • Guru
  • *****
  • Příspěvků: 815
  • Karma: 59
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:Embarcadero príklad
« Odpověď #24 kdy: 15-12-2018, 09:44:21 »
Excellent
Rated 2 times
Globální proměnná se v souboru projektu prostě nedá deklarovat.
Embarcadero Technology Partner

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2329
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Embarcadero príklad
« Odpověď #25 kdy: 15-12-2018, 16:17:38 »
Globální proměnná se v souboru projektu prostě nedá deklarovat.


Kód: Delphi [Vybrat]
  1. program Project18;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8.   System.SysUtils;
  9.  
  10. var
  11.   tady: string;
  12.  
  13. begin
  14.  
  15. end.
  16.  
  17.  

Je to globalni promenna, ale moc parady s tim neudelas.
Embarcadero MVP - Czech republic