Пытаюсь вновь писать на паскале, но после дотнета в голове каша

Вопрос:
- Код: Выделить всё
- procedure TForm1.FormCreate(Sender: TObject);
 var
 cb : TComboBox;
 i : byte;
 begin
 cb:= FindComponent('CB'+ IntToStr(i)) as TComboBox;
 cb.ItemIndex:= StrToInt(SettingsList[i-1]);
 // работа...
 cb := nil;
 cb.Free;
 end;
Нужно ли выполнять
cb := nil;
cb.Free;
в конце метода, или объект будет выгружен автоматически?



 И только в том случае, если Вы хотите непременно загубить тот компонент, ссылку на который берёте с помощью FindComponent(). Вот если бы Вы создавали этот компонент заново (cb:=TComboBox.Create()), тогда делать cb.Free нужно в обязательном порядке, а то в программе будет болтаться выделенный, но недоступный кусок памяти.
 И только в том случае, если Вы хотите непременно загубить тот компонент, ссылку на который берёте с помощью FindComponent(). Вот если бы Вы создавали этот компонент заново (cb:=TComboBox.Create()), тогда делать cb.Free нужно в обязательном порядке, а то в программе будет болтаться выделенный, но недоступный кусок памяти.


 Вообще, слабо в голове укладывается ситуация, когда пытаются освободить nil
 Вообще, слабо в голове укладывается ситуация, когда пытаются освободить nil  Это же явная ошибка, и хорошо, если она всплывёт при первом же запуске
 Это же явная ошибка, и хорошо, если она всплывёт при первом же запуске