![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| kdkdkdkd85 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Подскажите, пожалуйста, в чём дело - ничего не могу понять
|
|||
|
||||
| VICTAR |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 10 Всего: 80 |
kdkdkdkd85, не вижу никаких причин чтобы этот код не работал. Почему ты решил что у тебя что-то не присваивается? Как ты это проверяешь?
|
|||
|
||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 5 Всего: 12 |
kdkdkdkd85, переменные:
являются локальными и при выходе из процедуры разрушаются. А так всё должно работать на ура |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
Напиши
И посмотри, что будет. |
|||
|
||||
| kdkdkdkd85 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Проверяю я, трейся пошагово код (F8). Когда алгоритм проходит строки присвоения то в переменные ничего не заностися. Объясняю в картинках (в архиве)...
Я уже пробовал перезапускать Delphi, переименовывать переменные и компоненты, присваивать втупую (тогда при нажатии F8 происходит перескок через эту строчку и, кстати, на неё нельзя поставить breakpoint (F5)), ну прям чудеса... Присоединённый файл ( Кол-во скачиваний: 6 )
________.rar 13,11 Kb |
|||
|
||||
| kdkdkdkd85 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
mr.Anderson, решил последовать совету и чудеса: как только вставил в код строки про showmessage сразу всё заработало. А почему? Неужели это связано с тем что я ни разу не использовал эти переменные (var AreaWidth never used - пишет компилятор)?
Это сообщение отредактировал(а) kdkdkdkd85 - 27.10.2007, 13:23 |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
kdkdkdkd85, эт не чудеса.
Во-первых, если переменная дальше по коду не используется, компилятор в целях оптимизации стирает ее из памяти, то есть отладчиком "отловить" присвоение нового значения переменным в твоем коде не получится. Если же сделать showmessage, да или вообще все что угодно, хоть
А затем остановиться при отладке на этой строчке и глянуть на текущее значение данной переменной (до выполнения строки с новым присваиванием нуля) - то ты увидишь ее текущее значение, поскольку компилятор не удалял ее (переменную) из памяти, поскольку она требуется для выполнения дальнейших операций. |
|||
|
||||
| Still |
|
|||
|
PHP-программист ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
kdkdkdkd85! ivan219 правильно говорит. Переменные локальные, попробуй сделать их глобальными. Примерно так:
Это сообщение отредактировал(а) Still - 27.10.2007, 13:53 |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
Still, убил бы за использование глобальных переменных. Их необходимость очень часто довольно призрачна, поэтому лучше обходиться без этого.
Впрочем, я пояснил суть проблемы, почему переменным "не присваиваются" значения. А раз понятна причина - то дальнейшее использование и исправление проблемы полностью на совести автора. |
|||
|
||||
| kdkdkdkd85 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Всем большое спасибо
|
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: нет Всего: 9 |
mr.Anderson, а объекты форм тоже призрачно? ;) Просто глобальные желательно выносить в один модуль u_Global и внем все писать с указанием где каждая переменная используется, тогда все будет ок
|
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
EvilsInterrupt, про объекты я молчу, это действительно необходимое использование глобалок. А в данном случае очень вряд ли, что глобалки имеют смысл.
|
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: нет Всего: 9 |
mr.Anderson, хорошо вот случай, я щас пишу прогу основанную на плагинах, написал TPluginManager , как его объект объявить?
Если использует окно Настроек(есть тута каждый плагин можно настроить, выгрузить\загрузить,обновить лист плагинов), работать с плагинами в модуле u_main , тута основная работа с плагинами, опрос все ли отработали плагины, может кто не верно в базу положил или еще что-нить, как мне замудрить если не глобально? зы: жаль что на форумах нельзя жать Ctrl+Enter |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
EvilsInterrupt, цитирую:
|
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
отослано с пом. Ctrl+Enter -------------------- There are always someone smarter than you... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |