ďťż

Ładny brzuch

Jak mogę usunąć z pamięci formatkę kiedy mi nie będzie potrzebna? Formatki są w dziale 'Available forms', wywoływane z Form1 i kasowane 'OnClose' przy pomocy funkcji w Form1.cpp. Próbowałem Form2->Free() i delete Form2, ale kiedy patrzę na pamięć w Menedżerze zadań, to nie tylko program nie zmniejsza zajmowanej pamięci, ale jeszcze zwiększa za każdym ponownym otwarciem! Jak to zrobić?



A czy ta formatka nie bedzie joz uzywana po jej zamknieciu?

To m.in. okienko opcji i okno about. User otwiera okno opcji, zmienia je i zapisuje do pliku ini i zamyka okno. I wtedy ma się skasować z pamięci, ale być nadal dostępne dla usera.

Nie patrz po zużyciu pamięci w Managerze Zadań, bo skasowanie obiektu nie musi oznaczać natychmiastowego zwolnienia używanej pamięci. Zależnie od tego jaką strategię zarządzania pamięcią realizuje program i system operacyjny, ta pamięć może być trzymana przez program 'w rezerwie' po to, żeby nie dochodziło do fragmentacji sterty. Jak sobie dużo przydzielamy i zwalniamy małych bloków pamięci w sposób nieuporządkowany, to sterta robi się 'dziurawa' i jak będziemy chcieli przydzielić większy blok pamięci to może się okazać, że jest to niemożliwe - na przykład jest 10 wolnych bloków po 4kB każdy, a my chcemy zaalokować 30kB. Dlatego pożądane jest alokowanie pamięci w większych ilościach, przydzielanie jej kiedy będzie potrzebna, i zwalnianie hurtem :).

A jeśli po każdym uruchomieniu programu (i zamknięciu starego) wzrasta Ci pamięć używana w systemie, to coś się może z nim niedobrego dziać ;]



Mam rozumiec ze te formatke tworzyles 'nie dynamicznie', jesli tak
to program sam powinien zadbac o zwolnienie pamieci zajmowanej
przez okno. Mozliwe ze masz w innym miejscu programu jakis blad
np. wyciek pamieci...

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •