[Delphi] Zwolniło się całkiem co innego :-|

0

Chciałem coś sprawdzić i w onClick buttona wpisałem:

var ts: TStrings;
begin
  ShowMessage(ts.Strings[5]);
  ts.Free;
end;

miałem nadzieję obejrzeć Access Violation i tyle, a okazało się że zobaczyłem pusty dialog wywołany przez ShowMessage po czym przycisk na który kliknąłem zniknął :-| Czemu tak jest ? To znaczy że nie mogę mieć pewności że wywołując Free czegoś czego nie ma - nie zwolni mi się coś innego ?
dodam że jeśli z tego kodu usunę ShowMessage to znika cała forma

fajna sprawa
w sumie wystarczy samo ShowMessage('') - ts przybiera jakoś losowy adres z pamięci, to rozumiem ale że istniejącej rzeczy ?

0

bardzo ciekawe zjawisko :)
ja od siebie moge dodac tyle, ze po zastosowaniu try..finally pokazuje to co, powinno, czyli AccesViolation

  try
   ShowMessage(ts.Strings[5]);
  finally
   ts.Free;
  end;
0

Bardzo dziwne. Błąd kompilatora albo IDE może? A jaką wersję delphi masz? Ja mam 7 i też mam to samo (dla jakiejkolwiek liczby, nie tylko 5).

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