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

аналог Static в Делфи?   Найти похожие ветки 

← →
Шурка_прогер   (2005-02-28 19:16) [0]

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


← →
clickmaker ©   (2005-02-28 19:26) [1]

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


← →
Димон   (2005-02-28 19:51) [2]

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


← →
Соловьев ©   (2005-02-28 20:49) [3]

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

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

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


← →
Fay ©   (2005-02-28 20:52) [4]

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


← →
Юрий К   (2005-02-28 20:56) [5]

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

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


← →
Соловьев ©   (2005-02-28 20:56) [6]


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

для функции


← →
Sergey_Masloff   (2005-02-28 20:59) [7]


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

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


← →
Sergey_Masloff   (2005-02-28 21:02) [8]

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


← →
Соловьев ©   (2005-02-28 21:16) [9]


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

я бы тоже :)
Нашел в кулибах :
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 ;



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

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



Память: 0.47 MB
Время: 0.021 c
3-1107974140
Топпер
2005-02-09 21:35
2005.03.13
Paradox ошибка нехватка памяти


6-1104903666
uny
2005-01-05 08:41
2005.03.13
ping каждые 2 минуты - спец маленькая прога


1-1109315695
Нуждающийся в помощи
2005-02-25 10:14
2005.03.13
Бинарные операции


9-1103358104
Toxic
2004-12-18 11:21
2005.03.13
Ориентация объекта - МАТРИЦЫ


1-1109671828
JTAG
2005-03-01 13:10
2005.03.13
Как организовать задержку (стандартный таймер) сделал так:




   Наверх