powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Глюк Delphi7
10 сообщений из 10, страница 1 из 1
Глюк Delphi7
    #32160602
Петр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть кто с этим встречался или знает из-за чего происходит, суть в следующем:
Глобальная переменная обнуляется, хотя НОЛЬ в нее никто не записывал.
Переменная объявлена в другом модуле, если объявить ее в основном модуле обнуление не происходит...

- В главной форме формирую меню (TMainMenu)
- В созданном модуле (unit globals) обявляю переменную global_var
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
unit globals;

interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     menus;
var 
   global_var: integer;


- создаю и открываю MDI форму и записываю порядковый номер в global_var
Код: plaintext
1.
2.
3.
Application.CreateForm(TfCreateMenu, fCreateMenu);
global_var := global_var + 1 ;
fCreateMenu.Show;


После повторного открытия в global_var записывается НОЛЬ, причем в момент не использования этой переменной (замечено при трасировке)
...
Рейтинг: 0 / 0
Глюк Delphi7
    #32160612
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Ну вообще-то Делфи инициализирует переменные. Неважно, какая у них область видимости:
integer -> 0;
boolean -> False;
string -> '';
...
...
Рейтинг: 0 / 0
Глюк Delphi7
    #32160640
Петр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При инициализации Integer не НОЛЬ
Код: plaintext
1.
2.
3.
4.
5.
var
  k: integer;
begin
 edit1.Text:=inttostr(k);
end;

результат = 12588740
...
Рейтинг: 0 / 0
Глюк Delphi7
    #32160647
?пк?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Ну вообще-то Делфи инициализирует переменные. Неважно, какая у них область видимости: "

Delphi инициализирует только глобальные переменные и члены данных класса
остальные - не инициализирует
...
Рейтинг: 0 / 0
Глюк Delphi7
    #32160690
Петр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, но тогда получается что переменная переинициализировалась?
...
Рейтинг: 0 / 0
Глюк Delphi7
    #32160696
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Ну вообще-то Делфи инициализирует переменные. Неважно, какая у них область видимости:"

Не полагайтесь на Делфи. IMHO правильно будет инициализировать глобальные переменные ТОЛЬКО явным образом!
например использовать initialization секцию unit'a...
...
Рейтинг: 0 / 0
Глюк Delphi7
    #32160717
Петр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК попробую через initialization
...
Рейтинг: 0 / 0
Глюк Delphi7
    #32160851
N_Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вообще-то я давно заметил глюк трассировщика, начиная с D6. Почему-то значения некоторых переменных неверно отображаются в режиме трассировки, хотя на самом деле все нормально.
...
Рейтинг: 0 / 0
Глюк Delphi7
    #32160872
Петр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом случае трассировка верна, попробовал объявить через initialization все пошло
...
Рейтинг: 0 / 0
Глюк Delphi7
    #32161760
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бывают глюки такого типа если включена оптимизация...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Глюк Delphi7
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]