Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Watch показывает неверные значения переменных [D7, XP]


silversmith ©   (2006-10-26 15:07:00) 

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

 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 сцепляются также в правильном порядке.

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

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


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


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


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

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

:)


Anatoly Podgoretsky   (2006-10-26 23:32:00) [2]

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

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

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

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

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


Anatoly Podgoretsky   (2006-10-26 16:48:00) [3]

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


Anatoly Podgoretsky   (2006-10-26 16:48:00) [4]

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

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


Elen   (2006-10-26 16:43:00) [5]


> Anatoly Podgoretsky

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


Anatoly Podgoretsky   (2006-10-26 16:39:00) [6]


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

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


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


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


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

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


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


> Anatoly Podgoretsky

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


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

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


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


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

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


Anatoly Podgoretsky   (2006-10-26 16:12:00) [11]

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


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


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

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


Anatoly Podgoretsky   (2006-10-26 15:38:00) [13]

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


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

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


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

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


unknown   (2006-10-26 15:13:00) [16]


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

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


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


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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо