Form Close, Action cafree - o co chodzi?

0

Witam, analizuje pewien program i nie moge zrozumieć po co sa te 4 linijki kodu

procedure TForm9.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

Formatka zamyka się tak samo i bez tego kodu. To ma jakieś znaczenie ?

0

Bez tego - tylko się chowa.

0

jak to się chowa? co mam przez to rozumieć ? u mnie wygląda to identycznie

0

Oczywiście, przecież nie istnieje naoczny sposób na odróżnienie nie istniejącej o niewidocznej.

0

a jakie ma to znaczenie w programowaniu ? dlaczego nie można było tego pominąć ? kod byłby krótszy

0
TForm9.Create(Application).Show();
  • i nie muszę martwić się o wyciek pamięci.
0

to jeszcze jedno mnie ciekawi:

procedure TForm1.Button1Click(Sender: TObject);
begin
Form9:=TForm9.Create(Application);
Form9.ShowModal;
end;

a gdyby zrobić z tego prostsze:

procedure TForm1.Button1Click(Sender: TObject);
begin
Form9.ShowModal;
end;

znowu wygląda tak samo i znowu nie wiem czym to sie rozni

0
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form9.ShowModal;
end;

Po zamknięciu jeszcze raz naciśnij Button1.

0

faktycznie, teraz widze roznice, to ma zwiazek z moim 1 pytaniem?
i co znaczy to caFree ?

0

Nie wiesz co to Free?

0

jeżeli pytasz o wyraz angielski to wiem, ale caFree już nie

6

Jak masz problem z jakimś słowem kluczowym to pierwsze co należy zajrzeć do dokumentacji. Jak nie wiesz gdzie takowa się znajduje to od tego jest google/bing/inna szukajka. Po wpisaniu do google delphi cafree jako pierwszy wynik dostajesz link do dokumentacji, a konkretnie tu http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Forms_TForm_OnClose.html a tam już jest pięknie wytłumaczone caFree The form is closed and all allocated memory for the form is freed. Jeśli po takim wytłumaczeniu nie wiesz co robi ta linijka to trzeba po prostu zmienić obiekt swoich zainteresowań.

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