Windows-7 всему голова...

Dec 22, 2012 11:33

Windows-7 всему голова. - Такую голову да оторвать к чертям собачьим, чтоб не думала. :-((

В общем, вот код:

procedure TMainForm.LoadDirectory;
Var SR : TSearchRec;
STRList : TStringList;
begin
STRList.Clear;
STRList := TStringList.Create;
FindFirst (ExtractFileDir (ParamStr (0)) + '\*.*', faAnyFile, SR);
DirList.Items.Clear;
while FindNext(sr) = 0
....
....
....и в нем есть грубая ошибка, но Windows-7 ее не видит, и выполняет процедуру.
Windows XP (у меня дома) выдал Access Violation отказал выполнять ее. Я сначала не понял от куда ошибка, подумал что Delphi сошел с ума, а потом наткнулся вот на эти две строчки:

STRList.Clear;
STRList := TStringList.Create;
и все мне стало ясно.
НУ НЕ МОЖЕТ ПРОГРАММА РАБОТАТЬ С КЛАССОМ, КОТОРЫЙ ЕЩЕ НЕ СОЗДАН! А Windows-7 такое позволяет, и очищает список "STRList.Clear;", который вроде-бы еще не существует.

В общем, я поменял местами эти две команды и все заработало.
Вопрос в другом. Подобные ошибки маскируемые семеркой, могут вылезать при выполнении программы на Win-XP, и программист в конечном счете будет биться головой об монитор пытаясь найти их отлаживая код под семеркой.

Программирование, delphi

Previous post Next post
Up