Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.012 c
1-20049
levova
2003-06-25 15:09
2003.07.07
Динамически созданю обект MyButton:TButton...


1-20095
Mihey
2003-06-24 00:45
2003.07.07
Общее событие OnClick для нескольких контролов...


1-20072
hex_for_delphi
2003-06-24 00:37
2003.07.07
как загружать из внешнего файла в масив и обратно.


3-19996
Studentik
2003-06-11 23:39
2003.07.07
Хранимые процедуры в Web-модуле


1-20034
Andrew_kv
2003-06-24 08:28
2003.07.07
Как передать параметры в форму