Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Внизаналог 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c