Главная страница
    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.038 c
9-1103379826
йцуеук
2004-12-18 17:23
2005.03.13
Угол между векторами?


1-1109262876
AlexanderVas
2005-02-24 19:34
2005.03.13
Можно ли поменять тип записи во время исполнения программы


8-1101141268
Lisii
2004-11-22 19:34
2005.03.13
OpenGL


1-1109230829
3APA3A
2005-02-24 10:40
2005.03.13
Combobox


3-1108460288
Фрейд
2005-02-15 12:38
2005.03.13
таблица в таблице





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский