Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: 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 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
1-1109702829
quickblack
2005-03-01 21:47
2005.03.13
Пауза в программе


9-1103121746
D-Man
2004-12-15 17:42
2005.03.13
Генерация 2d карт


6-1105356285
Ditmar
2005-01-10 14:24
2005.03.13
idHTTP как заставить работать через Proxy? (D7)


1-1109516816
Igor_thief
2005-02-27 18:06
2005.03.13
Выделение ячейки в ValueListEditor


3-1108030742
BPK
2005-02-10 13:19
2005.03.13
TDataSet.Locate не работает по сортированному DataSet