Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.12;
Скачать: CL | DM;

Вниз

Watch показывает неверные значения переменных   Найти похожие ветки 

 
silversmith   (2006-10-26 15:07) [0]

Добрый день, уважаемые коллеги.
Написал процедуру содержащую примерно следующий код:

 for q:=1 to 28 do begin
  ShowMessage(IntToStr(q));  
  fn:="data\random\a"+IntToStr(v1[q]);
 end;

Начинаю пошаговую трассировку программы.
В Watch добавил переменные q, v2, fn, v1 и обнаружил что watch показывает неверные значения. Сразу после входа в цикл значение q показывается в вотче равным 28 и на каждом следующем проходе цикла уменьшается на единицу хотя ShowMessage(IntToStr(q));  выдает все правильно то есть 1, 2, 3 ... 28. Со строкой fn элементы массива v2 сцепляются также в правильном порядке.

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

Заранее спасибо за ответы.


 
Сергей М. ©   (2006-10-26 15:11) [1]


> из-за чего это может возникнуть


Из-за оптимизатора.

В целях и на время отладки выключи соотв.опцию в св-вах проекта.


 
unknown ©   (2006-10-26 15:13) [2]


> silversmith   (26.10.06 15:07)
> Просто эта проблема ужасно затрудняла отладку и хотелось
> бы на будущее знать, из-за чего это может возникнуть и как
> это побороть.

Это происки оптимизатора. Ничего страшного.
Если очень хочется - можно просто отключить оптимизацию в свойствах
проекта.


 
Ketmar ©   (2006-10-26 15:18) [3]

ох-х-х... этот вопрос возникает с завидной регулярностью. а вот про "запуздырить" что-то реже спрашивают... %-)


 
silversmith   (2006-10-26 15:19) [4]

Спасибоа за ответ. Действительно так оно и оказалось.


 
Anatoly Podgoretsky ©   (2006-10-26 15:38) [5]

А запуздырить включили в Дельфи


 
Германн ©   (2006-10-26 15:56) [6]


> Anatoly Podgoretsky ©   (26.10.06 15:38) [5]
>
> А запуздырить включили в Дельфи

В какую версию? Срочно перехожу на неё! :-)


 
Anatoly Podgoretsky ©   (2006-10-26 16:12) [7]

Не помню, где то с 7 по 2006
Я не искал, но скоро буду. Или напишу как положено на АПИ


 
Elen ©   (2006-10-26 16:28) [8]


> А запуздырить включили в Дельфи

В смысле Run->Attach to process ?


 
Anatoly Podgoretsky ©   (2006-10-26 16:30) [9]

Вообще то в виде Drag&Drop


 
Elen ©   (2006-10-26 16:34) [10]


> Anatoly Podgoretsky

Так вот что такойе "запуздырить" 8) будемть знатьть


 
Германн ©   (2006-10-26 16:37) [11]


> Anatoly Podgoretsky ©   (26.10.06 16:12) [7]
>
> Не помню, где то с 7 по 2006

Действительно включили. В 2006 есть. В хелпе даже ясно сказано - туда, где часики. :-)


 
Anatoly Podgoretsky ©   (2006-10-26 16:39) [12]


> Так вот что такойе "запуздырить" 8) будемть знатьть

Откуда догадалась? В ветке ни слова про это.
Это старая известная история, еще со времен ФИДО, вопрос выглядел так


> Как запуздырить программу, туда где часики


 
Elen ©   (2006-10-26 16:43) [13]


> Anatoly Podgoretsky

Не догадалась потому и интуитивно спрашиваю в [8]. А где почитать полный ответ?


 
Anatoly Podgoretsky ©   (2006-10-26 16:48) [14]

По памяти, общий смысл

Все операции с иконками в системтрей выполняются с помощью единственной функции Shell_NotifyIcon


 
Anatoly Podgoretsky ©   (2006-10-26 16:48) [15]

Ну и конечно разные варианты стеба


 
Anatoly Podgoretsky ©   (2006-10-26 23:32) [16]

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

С помощью его можно минут за тридцать сделать профессионально выглядующее приложение с иконкой и соответствующим поведением.

Иконку можно в любое время добавлять и убирать. Небольшая заточка и при старте можно сделать что бы главная форма была невидимой, не с помощью этого компонента конечно и и при его помощи.

Только надо быть осторожным, что бы одновременно не запретить и иконку и главное окно, а то придется закрывать приложение с помощью трех волшебных клавиш, и сделать нормальное поведение приложения, так что бы минимизация и кнопка закрытия программы не закрывали приложение при наличии иконки, а скрывали главное и вспомогательные окна, ну и соответственно наоборот, но это дело техники и входит в эти тридцать минут на написание и проведение экспериментов.

За это время я успел отладить приложение, свой NNTP сервер, провести все необходимые приложения, управление показом пунктов меню в зависимости от состояния, показом главной формы и самой иконки, так чтобы не оказаться в подвешенном состоянии.


 
skyle ©   (2006-10-27 07:00) [17]


> Anatoly Podgoretsky ©   (26.10.06 16:48) [14]
> По памяти, общий смысл
>
> Все операции с иконками в системтрей выполняются с помощью
> единственной функции Shell_NotifyIcon


Если речь про origin Тенцера, то вот оригинал

= Иконку в system tray (где часы) вставляют функцией Shell_NotifyIcon =

:)



Страницы: 1 вся ветка

Текущий архив: 2006.11.12;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.034 c
15-1161415275
Гарри Поттер
2006-10-21 11:21
2006.11.12
Анимация "пожалуйста ждите"


2-1161783541
Vovan#1
2006-10-25 17:39
2006.11.12
Выбрать папку. Нормально.


15-1161983461
unknown
2006-10-28 01:11
2006.11.12
Clawfinger


3-1158081756
anton773
2006-09-12 21:22
2006.11.12
подавить показ сообщений об ошибках


2-1161860857
kirillrepin
2006-10-26 15:07
2006.11.12
ListBox