Главная страница
    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.04 c
14-1109064619
Holy
2005-02-22 12:30
2005.03.13
Упала 2000-я. Помогите...


1-1109243441
Kostik__
2005-02-24 14:10
2005.03.13
INI-файлы


3-1108021049
denis24
2005-02-10 10:37
2005.03.13
вы зов процедуры в запросе


1-1109366217
ser35
2005-02-26 00:16
2005.03.13
Как сделать расчет?


4-1106209448
alpet
2005-01-20 11:24
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский