Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

аналог Static в Делфи? [D6, WinXP]


Шурка_прогер ©   (2005-02-28 19:16:00) 

как в Дэлфи объявить переменную с такими же свойствами, какими
обладает переменная в Си описанная как static ?


Соловьев   (2005-02-28 21:16:00) [1]


> Но если бы я такое в коде увидел - бил бы морду.

я бы тоже :)
Нашел в кулибах :
function  NextToken( P : PChar ; Divider : PChar ) : PChar ;

const next : PChar = nil ;

begin
if P = nil then P := next ;
if P <> nil then begin
next := StrPos( P, Divider ) ;
if next <> nil then begin
next^ := #0 ;
next := @next[ StrLen( Divider ) ] ;
end ;
end ;
NextToken := P ;
end ;


Sergey_Masloff   (2005-02-28 21:02:00) [2]

Эссигнейбл тайпед константс не забудь флагом поставить.


Sergey_Masloff   (2005-02-28 20:59:00) [3]


procedure TForm1.Button1Click(Sender: TObject);
const
 d : Double = 1.0;
begin
 d := d * 2;
 ShowMessage(Format('%.2f',[d]));
end;

Но если бы я такое в коде увидел - бил бы морду.


Юрий К   (2005-02-28 20:56:00) [4]

Как вариант поместить объявление переменной непосредственно перед функцией:

implementation
...
var myStatic: ... ;
function MyFunc( ... ): ... ;
begin
...
myStatic := ... ;
...
end;


Соловьев   (2005-02-28 20:56:00) [5]


> Локальной для кого?

для функции


Fay   (2005-02-28 20:52:00) [6]

>> оставить эту переменную локальной
Локальной для кого?


Соловьев   (2005-02-28 20:49:00) [7]

если я в Си в какой-то функции объявил переменную как
статик.
То я вошел в функцию, поменял значение переменной и вышел из функции.
А когда опять вошел в функции, то значение локальной переменной осталось
таким же каким оно было
когда я предыдущий раз выходил из этой функции.

Конечно в Дэлфи я могу сделать переменную глобальной и не трахаться, но есть
ряд соображений по
которым мне нужно оставить эту переменную локальной, но сохраняющую
значение.
Вводить ее в ряд передаваемых параметров тоже не имеет смысла, т.к. сильно
код загромоздится.

Мне кажется, что я когда-то в хэлпе видел что-то подобное, но сейчас не могу
найти :(


Димон   (2005-02-28 19:51:00) [8]

Точно также не сделаешь.
Можешь объявить class методы (class procedure и class function). Само значение хранить под implementation


clickmaker   (2005-02-28 19:26:00) [9]

какие свойства статика тебе нужны? видимость в пределах модуля - это в секции implementation


Наверх

Титульная страница Поиск, карта сайта Написать письмо