![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
аналог 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