To do Newbie :P
procedure ZwalniamyListBoxa(var ListBox: TListBox);
begin
// ...
ListBox.Free;
Integer(ListBox) := 0;
end;
Zastosowałem przekazywanie przez referencję tylko dlatego, żeby ustawić potem wartość nil dla zmiennej. Jeśli możesz obejść się bez ustawiania wartości nil, usuń słówko var przy parametrze ListBox.
Teraz w funkcji WstawListB() klepiesz ZwalniamyListBoxa(ListaAuto); i wszystko.
// EDITED:
Chyba Cię nie zrozumiałem, chcesz usunąć później tego ListBoxa, bez odwołania do tej procedury usuwającej z tej tworzącej, tak? To w takim wypadku pozostanie tablica FormAuto.Controls[] .
// EDITED 2:
{PIT}, przekazanie przez referencję nie jest konieczne, bo przekazujesz wskaźnik na obiekt (liczbę 32-bitową); jeśli nie chcesz zmienić tego wskaźnika (w sensie wartości tej liczby, nie modyfikacji obiektu), wystarczy przekazywanie przez wartość. Ja wykorzystałem referencję, bo na końcu wyzerowałem wskaźnik.