Текущий архив: 2003.07.07;
Скачать: CL | DM;
Вниз
Просмотр значений строк списка при отладке Найти похожие ветки
← →
2Nat (2002-10-28 17:34) [0]При отладке программы не получается посмотреть значения строк списка PStrList. Обычно при наведении курсора на элемент программы можно увидеть его значение или в WatchList посмотреть. Здесь же количество строк в любом списке что-то типа 4204748, а значение SL.Items[i] = "Access violation at ... accessing FFFFFFFF". Значения простых переменных видны.
Что сделать? Программа слишком большая, а ошибки лучше поймать сразу. Нет больше сил выводить значения через ShowMessage.
Заранее спасибо.
← →
SPeller (2002-10-28 17:56) [1]Просто тебе показывают значения указателей. Используй запись вида Variable^ для доступа именно к значению, а не адресу, по которому это значение расположено.
← →
SPeller (2002-10-28 17:57) [2]ЗЫ: И курсор наводи на крышечку ^
← →
2Nat (2002-10-28 18:36) [3]Не получается :(
В WatchList пишу SL.Count^ (или (SL.Count)^) - результат "Pointer type required". В данный момент список точно существует и и содержит строки.
← →
SPeller (2002-10-28 18:54) [4]А если так: SL^.Count; ? У тебя же SL - указатель на объект-список строк. И потом наводишь мышу на крышку и получаешь то что тебе надо.
> SL.Count^
:-))
← →
2Nat (2002-10-28 19:24) [5]:)))
Для SL^.Count и наведении чего надо на крышечку видим в скобках список параметров списка, среди них fCount - похоже на количество.
Как посмотреть сами строки. Там в перечне свойств виднелся указатель ...,fList:$XXXXX, ... Может это оно, как его смотреть.
Извиняюсь, если отвлекаю от чего-нибудь более высокого.
← →
SPeller (2002-10-29 01:02) [6]А если воспользоваться окнами Evaluate/Modify или Watches ? Эффект тот же? По-моему они дожны помочь тебе сполна.
← →
2Nat (2002-10-29 14:13) [7]В Evaluate/Modify, если в качестве значения набрать SL^ и нажать Inspect, то на вкладке Properties появившейся панельки среди прочих свойств увидим Count (то что надо)и Items. Если выделить Items, то даже можно увидеть его адрес. Но быстро в режиме отладки строки из Items посмотреть не получается.
Понимаю, что ворос из области "KOL" перешел в область "программирование для чайников", но все же... Буду очень признательна за помощь :)
Всяческие махинации с перестановками значка адресной операции не помагают. Help
← →
SPeller (2002-10-29 16:25) [8]У меня счас нет времени смотреть исходники, уравками так вылезаю в этот форум. Поэтому если тебе показывают адрес чего-либо, то после имени переменной надо поставить крышечку эту незамысловатую, чтобы тебе показали значение.
← →
Vladimir Kladov (2002-11-02 07:53) [9]
> В Evaluate/Modify, если в качестве значения набрать SL^
> и нажать Inspect, то на вкладке Properties появившейся панельки
> среди прочих свойств увидим Count (то что надо)и Items.
> Если выделить Items, то даже можно увидеть его адрес. Но
> быстро в режиме отладки строки из Items посмотреть не получается.
>
Увы, приходится смотреть FCount, FItems[ I ] и т.д. Инспектор
отладчика не понимает свойства в objects по-нормальному. Хорошо хоть, компилится корректно.
Если часто в одном месте приходится смотреть много разных полей, но не хочется много вбивать в Watcher, могу предложить такое:
{$IFDEF DEBUG}
var TmpCount: integer; TmpValue: string;
{$ENDIF}
...
{$IFDEF DEBUG}
TmpCount := MyList.Count;
TmpValue := MyList.Items[ I ];
{$ENDIF}
останавливаемся и смотрим TmpXXX.
Вообще, при хорошем программировании такие фокусы обычно не нужны - все и так работает :)
> SPeller © (29.10.02 16:25)
> У меня счас нет времени смотреть исходники, уравками так
> вылезаю в этот форум. Поэтому если тебе показывают адрес
> чего-либо, то после имени переменной надо поставить крышечку
> эту незамысловатую, чтобы тебе показали значение.
Крышечка - это чтобы посмотреть, на что указывает указатель. Если
нужно конкретное поле, крышечка особо не нужна, delphi и так поймет. Единственное место, когда крышечка необходима по синтаксису - это в
with:
with MyObj^ do ...
но я уже год стараюсь избегать with. Очень мешает при отладке. Как раз не дает посмотреть значение поля наведением мыши. И мешает понимать код. Особенно, при вложенных with.
Страницы: 1 вся ветка
Текущий архив: 2003.07.07;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.011 c