Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.059 c
3-1107277551
UVV
2005-02-01 20:05
2005.03.13
DataSource.DataSet.IsEmpty


14-1108994387
boriskb
2005-02-21 16:59
2005.03.13
С модераторами не спорят!!


3-1108067059
Коля
2005-02-10 23:24
2005.03.13
Загрузка bmp в поле


1-1109667406
Pest(Z)
2005-03-01 11:56
2005.03.13
выполнение кода вне модуля


6-1104758781
Zaur
2005-01-03 16:26
2005.03.13
TWebBrowser как Opera...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский