Когда в твоём Cheats не выделен ни один элемент Cheats.ItemIndex равно -1. А Cheats.Items[-1] не существует (список начинается со строки номер ноль
). Вот тебе и ошибка... пиши так:
Код:
procedure TApplication01.CheatsClick(Sender: TObject);
var
n: string;
begin
if Cheats.ItemIndex = -1 then
Exit;
n:=Cheats.Items[Cheats.ItemIndex];
Memo1.Lines.LoadFromFile('cheats\'+n+'.txt');
end;