Вниз
Скачать: CL | DM;

Авто инициализация переменной целого типа   Найти похожие ветки 

 
Nan   (2006-01-19 09:07) [0]

Как в Delphi сделать так, чтобы переменная целого типа принимала
значение равное 0 автоматически при ее объявлении ?


 
Vemer ©   (2006-01-19 09:16) [1]

Var
MyInteger : Integer = 0;
Only for global.


 
Nan   (2006-01-19 09:21) [2]

Это я знаю, а можно ли сделать, чтобы это происходило автоматом в том числе и с локальными переменными ?


 
MBo ©   (2006-01-19 09:31) [3]

{$J+}//Project-Options-Compiler-Assignable Typed Constants
procedure TForm13.FormCreate(Sender: TObject);
const
 A:Integer=0;
begin
 A:=5;
 Caption:=IntToStr(A);
end;


 
Юрий Зотов ©   (2006-01-19 09:33) [4]

1. Глобальные переменные (и поля объектов) и без того автоматически инициализируются нулями.

2. Локальные переменные не инициализируются.


 
evvcom ©   (2006-01-19 12:03) [5]


> MBo ©   (19.01.06 09:31) [3]

Лень проверять, но интересно, эта константа в стек ляжет или в "глобальную" область?
А вообще сама идея записи в константу ... Борланд извратился.


 
begin...end ©   (2006-01-19 12:10) [6]

> evvcom ©   (19.01.06 12:03) [5]

> Лень проверять, но интересно, эта константа в стек ляжет
> или в "глобальную" область?

Конечно же, НЕ в стек. При выходе в подпрограммы она должна сохранять своё значение.


 
begin...end ©   (2006-01-19 12:12) [7]

> в подпрограммы

из подпрограммы


 
Digitman ©   (2006-01-19 12:24) [8]


> константа в стек ляжет или в "глобальную" область?


Константа никуда не "ляжет".

"Ложатся" переменные, а не константы.


 
Digitman ©   (2006-01-19 12:25) [9]


> Константа никуда не "ляжет".


НЕтипизированная, имелось ввиду.


 
evvcom ©   (2006-01-19 12:39) [10]


> "Ложатся" переменные, а не константы.

Спасибо, я это знал.

> НЕтипизированная, имелось ввиду.

Вот именно. В данном-то случае разговор идет о типизированной. См. [3]. Я так и написал "эта константа".

> Конечно же, НЕ в стек.

Вот и я так думаю. Т.е. для разных объектов класса TForm13 (13 - намек на глючность :) сего подхода?) будет выполнена инициализация константы единожды (или всякий раз? нет надо все же посмотреть, интересный пример), в одном объекте она изменится, а в другом инитное значение уже метод не увидит. Не, сейчас проверю...


 
evvcom ©   (2006-01-19 12:45) [11]


> НЕ в стек
> в одном объекте она изменится, а в другом инитное значение
> уже метод не увидит

Так и есть. Точно Форма №13. С чертями дружна :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
2-1137802255
drag
2006-01-21 03:10
2006.02.05
ADO & BDE


1-1135970052
Allegarh
2005-12-30 22:14
2006.02.05
Поддержка нескольких языков в программе


2-1137445785
Comptoi's G
2006-01-17 00:09
2006.02.05
Помогите разобраться


2-1137502635
pathfinder
2006-01-17 15:57
2006.02.05
Delphi&Excel


10-1112891389
eugene32
2005-04-07 20:29
2006.02.05
Поиск в Excel. :(




   Наверх