Главная страница
    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.49 MB
Время: 0.041 c
3-1158317143
Sergey_b
2006-09-15 14:45
2006.11.12
выбор данных, в соответствии с иерархией


1-1159719430
Master_
2006-10-01 20:17
2006.11.12
EXCEL документ в DLL ?


15-1161509089
Чапаев
2006-10-22 13:24
2006.11.12
Афоризмы


15-1161818872
RAM
2006-10-26 03:27
2006.11.12
Ассоциации с цифрами Помогите прогуглить ?


15-1161622711
Ученик чародея
2006-10-23 20:58
2006.11.12
Драйвер аппаратного устройства на Java.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский