![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
> из-за чего это может возникнуть
Из-за оптимизатора.
В целях и на время отладки выключи соотв.опцию в св-вах проекта.