TCloseAction

0

czy ktoś moze mi powiedzieć o co biega z akcjami :
caNone.........caHide..............caFree......??:-) co np caFree zwalnia skoro ta procka jest aktywowana w momencie zamknięcia formy?? [???]

0

Zwalnia formę. Jeśli zamykana forma nie jest główną, jedynie znika z ekranu, ale nadal jest w pamięci.

0

<font color="blue">caNone</span> - nie robi nic, a moze raczej robi, bo gdy Action jest ustawione na caNone to forma sie nie zamknie czyli nie bedzie zadnej 'akcji'
<font color="blue">caFree</span> - to, ze pisze free nie znaczy, ze cos zwalnia. To tylko identyfikator. Jak ustawisz na caFree to forma zostanie normalnie zamknieta po wykonaniu procedury OnClose.
<font color="blue">caHide</span> - forma zostanie ukryta :)

0

caFree - to, ze pisze free nie znaczy, ze cos zwalnia. To tylko identyfikator. Jak ustawisz na caFree to forma zostanie normalnie zamknieta po wykonaniu procedury OnClose.

No to jaki jest sens używania caFree skoro to normalnie zwalnia forme? :D....bez tego chyba tez normalnie forma zostanie zwolniona....?

0

Jeżeli będziesz tworzył formę dynamicznie i będziesz chciał aby po jej zamknięciu była zwalniana pamięc przydzielona dla tej formy to użyjesz właśnie w onClose tej formy wpis: Action := caFree
Pomyśl ze jeśli będziesz miał w projekcie 20 form i nie będziesz ich tworzył dynamicznie i usuwał z pamięci po ich zamknięciu to będzie dużo pamięci zajmował taki projekt.
Dlatego właśnie korzysta się z wpisów caFree;

[dopisane]
Zrób sobie doświadczenie:
stwórz dwie formy
na pierwszej umieść przycisk otwierający drugą formę a na drugiej formie wstaw edita (wykasuj z niego wpis Text). Pamiętaj aby forma 2 nie była tworzona dynamicznie lecz statycznie
skompiluj i uruchom
po naciśnięciu przycisku na formie 1 otworzy ci się forma 2 i wpisz do edita jakikolwiek tekst, następnie zamknij drugą formę. Otwórz ją ponownie przyciskiem i wtedy w edicie zobaczysz swój wpis - cały czas był w pamięci komputera.
Zamknij program
przerób program tak aby była druga forma tworzona dynamicznie. W drugiej formie dla zdarzenia onclose tej formy wstaw action := cafree a w ondestroy form2:=nil
teraz po uruchomieniu programu nie będzie tej sytuacji ze za kazdym razem pamięta wpis w edicie, lecz za każdym razem będzie czysty edit (jesli wyczyściłeś jego włóaściwość Text)
Po to właśnie stosuje się caFree;

1 użytkowników online, w tym zalogowanych: 0, gości: 1