Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26061
Рейтинг: 2120
#16: 2011-11-17 11:38:56 ЛС | профиль | цитата
CriDos писал(а):
ошибка пропала

Я так и думал. Подозрение на этот метод у меня давно уже закралось
------------ Дoбавленo в 11.38:
CriDos, попробуй поставить поочередно дебаги в методе SetDriveName и определить место, после которого вылетает не доходя до дебага.
Те локализовать вылет
карма: 22

0
Ответов: 1841
Рейтинг: 369
#17: 2011-11-17 11:39:14 ЛС | профиль | цитата
1nd1g0, test.7z
карма: 1
0
Ответов: 3889
Рейтинг: 362
#18: 2011-11-17 11:41:51 ЛС | профиль | цитата
Там, собственно, я же ошибку и нашёл.
карма: 1

0
Ответов: 1841
Рейтинг: 369
#19: 2011-11-17 11:45:00 ЛС | профиль | цитата
nesco писал(а):
попробуй поставить поочередно дебаги в методе SetDriveName и определить место, после которого вылетает не доходя до дебага

проблема, он перестал вылетать
после того как я заремарил строку: D.SetDriveName(Drv);
и запустил программу, теперь он не вылетает, хотя я уже снял комент...
карма: 1
0
Ответов: 3889
Рейтинг: 362
#20: 2011-11-17 11:46:27 ЛС | профиль | цитата
CriDos, а что это, пустая форма с DriveBox?
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#21: 2011-11-17 11:50:59 ЛС | профиль | цитата
1nd1g0 писал(а):
почему SetDriveName - это ПРОЦЕДУРА, а параметр передаётся как в ФУНКЦИЮ?

Привет, а что, в процедуру нельзя передавать параметры Переменной Result в ней же нет
карма: 22

0
Ответов: 1841
Рейтинг: 369
#22: 2011-11-17 11:51:29 ЛС | профиль | цитата
пришлось вручную с svn тянуть hiDriveBox.pas
сейчас залью exe
http://dl.dropbox.com/u/6869303/HiAsm/test.7z
карма: 1
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#23: 2011-11-17 11:52:26 ЛС | профиль | цитата
CriDos писал(а):
и запустил программу, теперь он не вылетает, хотя я уже снял комент...

Попробуй вернуть все на место, переписав поверх исходный файл
карма: 22

0
Ответов: 3889
Рейтинг: 362
#24: 2011-11-17 11:52:40 ЛС | профиль | цитата
nesco, да, сослепу попутал GetDrive с SetDrive , уже обрадовался что баг нашёл.
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#25: 2011-11-17 11:53:48 ЛС | профиль | цитата
1nd1g0 писал(а):
уже обрадовался что баг нашёл

Гы, гы. Жук залез очень глубоко, еще и маскируется, что бы сразу не заметили
карма: 22

0
Ответов: 1841
Рейтинг: 369
#26: 2011-11-17 11:56:27 ЛС | профиль | цитата
nesco писал(а):
попробуй поставить поочередно дебаги в методе SetDriveName и определить место, после которого вылетает не доходя до дебага.

а как я тебе их поставлю?)
карма: 1
0
Ответов: 3889
Рейтинг: 362
#27: 2011-11-17 11:56:58 ЛС | профиль | цитата
CriDos писал(а):
как я тебе их поставлю?)

Он про какой-нибудь _Debug, наверное, или как там оно называется.
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#28: 2011-11-17 11:59:13 ЛС | профиль | цитата
Интересно, а какой получается текущий индекс в случае вылета в методе SetDriveName


  begin
if Err then
if DriveReady(Control.Items[DrvIdx][3]) then
Control.CurIndex := DrvIdx
else
begin // Ïðè âîçâðàòå âîçíèêëà îøèáêà
Drv := #99 + ':';
Control.CurIndex := Control.SearchFor(Drv[1], 0, True);
end
else
Control.CurIndex := Control.SearchFor(Drv[1], 0, True);
_debug(Control.CurIndex); // вот тут мы видим текущий индекс
VolList.Items[Control.CurIndex] := dspc + GetLabelDisk(Drv[1], False);
if FixedDrive(Drv[1]) then Timer1.Enabled := True;
end;
------------ Дoбавленo в 11.59:
1nd1g0 писал(а):
Он про какой-нибудь _Debug, наверное

Все правильно

  _debug;
при успехе будет выдавать -- операция успешно завершена
карма: 22

0
Ответов: 1841
Рейтинг: 369
#29: 2011-11-17 11:59:21 ЛС | профиль | цитата
nesco писал(а):
Интересно, а какой получается текущий индекс в случае вылета

1
карма: 1
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#30: 2011-11-17 12:01:46 ЛС | профиль | цитата
А вот в таком случае


    _debug(Control.CurIndex); // вот тут мы видим текущий индекс
VolList.Items[Control.CurIndex] := dspc + GetLabelDisk(Drv[1], False);
if FixedDrive(Drv[1]) then Timer1.Enabled := True;
_debug;

Доходит до второго дебага при вылете
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)