Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

а есть переменные типа static в Делфи ???

16K
21 января 2007 года
ksacvet_cnet
18 / / 14.11.2006
Здравствуйте .. !

В бейсике и си есть очень удобный
тип переменных: static ,

а есть что-нибудь подобное в Делфи ???
16K
21 января 2007 года
Alfá
59 / / 12.01.2007
Это label что ли? По сути - это та же надпись.
8
21 января 2007 года
mfender
3.5K / / 15.06.2005
Цитата: ksacvet_cnet
Здравствуйте .. !

В бейсике и си есть очень удобный
тип переменных: static ,

а есть что-нибудь подобное в Делфи ???


А что означает static в бейсике и си? Или все умельцы Delphi непременно должны быть полиглотами и знать кроме прочего ещё и бейсик?

355
21 января 2007 года
<SCORP>
786 / / 21.10.2006
это не label -- это переменные, сохраняющие значение между выховами процедуры\функции
8
21 января 2007 года
mfender
3.5K / / 15.06.2005
[QUOTE=<SCORP>;168436]это не label -- это переменные, сохраняющие значение между выховами процедуры\функции[/QUOTE]
А, имеется ввиду глобальные переменные, объявленные вне класса/объекта?
242
21 января 2007 года
Оlga
2.2K / / 04.02.2006
нет, имеется ввиду, что переменная статик сохраняет свое значение, даже после выхода из функции/процедуры. например:

Код:
void function(void)
{
  static int t = 0;
  t++;
}
 
void main(void)
{
    function(); //после вызова функции t== 1
    function(); //после вызова функции t == 2
}

для переменных типа статик выделяется одна постоянная ячейка памяти, и она остается за ними на протяжении всей программы, поэтому и значение сохраняется между вызовами функций.
9.0K
22 января 2007 года
Toxin_F
93 / / 03.01.2007
Цитата: ksacvet_cnet
Здравствуйте .. !

В бейсике и си есть очень удобный
тип переменных: static ,

а есть что-нибудь подобное в Делфи ???


Как таковых нет, но можно задать глобальную переменную.

20K
22 января 2007 года
marchyk
2 / / 07.09.2006
В Делфи есть класс-функции, ето примерно как статические методы в Си
25K
22 января 2007 года
Vol@and
1 / / 22.01.2007
В BDS2006 появилась такая возможность..

type
TCounter = class(IObject)
private
class var fCount: Integer;
protected
class function GetCount: Integer;
public
class property Count: Integer read GetCount stored 0;
end;
309
22 января 2007 года
el scorpio
1.1K / / 19.09.2006
Блин, чем дальше влез, тем ёлки гуще :(
Есть локальные данные - они расположены внутри области стека, принадлежащей текущей функции. Обращение к ним идёт "снизу".
Есть поля класса - они расположены с указанным смещением относительно объекта класса. Адрес объекта передаётся в каждый метод параметром-ссылкой Self.
Есть "глобальные" данные - они расположены в отдельной части области данных, адреса их расположения определяются на момент компиляции программы - по ним и производится обращение. Эти переменные существуют всё время работы программы.
Есть "статические" данные - это "глобальные" данные, к которым имеется доступ только из определённых областей кода. Статические переменные доступны только внутри одной функции/метода.
Статические поля класса - это ячейки памяти, общие для всех объектов данного класса (и производных от него). Эти данные доступны при обращении к любому объекту этого класса - причём вместо конкретного объекта можно просто указать требуемый класс.
Статические функции - это методы класса, в который не передаётся ссылка Self. По-этому в них нельзя использовать нестатические поля класса и вызывать нестатические методы.

ВСЁ
268
22 января 2007 года
Михаил
587 / / 25.06.2005
Цитата: Toxin_F
Как таковых нет, но можно задать глобальную переменную.


ну почему нет? можно использовать assignable constants - в Project-Options на вкладке Compiler установить переключатель и тогда такое объявление в функции или процедуре const c:integer=0; равносильно static переменной

286
22 января 2007 года
misha_turist
572 / / 28.11.2005
Цитата: Михаил
ну почему нет? можно использовать assignable constants - в Project-Options на вкладке Compiler установить переключатель и тогда такое объявление в функции или процедуре const c:integer=0; равносильно static переменной



Но она веть тогда меняться не будет т.к. const...

268
22 января 2007 года
Михаил
587 / / 25.06.2005
как это не будет меняться? да вы что :) обязательно будет, только необходимо в настройках проекта включить опцию Assignable typed constants на вкладке Compiler
286
22 января 2007 года
misha_turist
572 / / 28.11.2005
Цитата: Михаил
как это не будет меняться? да вы что :) обязательно будет, только необходимо в настройках проекта включить опцию Assignable typed constants на вкладке Compiler


Спасибо, буду знать..))

309
23 января 2007 года
el scorpio
1.1K / / 19.09.2006
Цитата:
ну почему нет? можно использовать assignable constants - в Project-Options на вкладке Compiler установить переключатель и тогда такое объявление в функции или процедуре const c:integer=0; равносильно static переменной


"Присваиваемая константа"??? :eek:
А также "живой труп", "вялый живчик", "маленький супермаркет" и "порядочный депутат" :D ((c) М. Задорнов)
Блиииин, как хорошо, что я на С++ перешёл :)

286
23 января 2007 года
misha_turist
572 / / 28.11.2005
Цитата: el scorpio
"Присваиваемая константа"??? :eek:
А также "живой труп", "вялый живчик", "маленький супермаркет" и "порядочный депутат" :D ((c) М. Задорнов)
Блиииин, как хорошо, что я на С++ перешёл :)



Ну почему же, лишня возможность ни когда не мешала, единственное пользоваться ей или нет.....

16K
23 января 2007 года
ksacvet_cnet
18 / / 14.11.2006
огромное спасибо всем ответившим ..!!!

вобщем полученый ответ: нет, но есть :)))
286
23 января 2007 года
misha_turist
572 / / 28.11.2005
Цитата: ksacvet_cnet
огромное спасибо всем ответившим ..!!!

вобщем полученый ответ: нет, но есть :)))


Ну вобщем то да..)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог