Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.05;
Скачать: CL | DM;

Вниз

Static variables   Найти похожие ветки 

 
id_privin ©   (2002-07-23 14:29) [0]

Читаю, help , но не нахожу : Как в Delphi сделать статического члена класса, и как его проинициализировать.

Спасибо.


 
Skier ©   (2002-07-23 14:47) [1]

>id_privin


> сделать статического члена класса


Поясни...


 
id_privin ©   (2002-07-23 15:35) [2]

Поясняю, в объекте есть поле, которое одинаково для всех объектов данного класса (например счетчик созданных объектов)


 
Skier ©   (2002-07-23 15:42) [3]

>id_privin
Каждый объект должен использовать общее (одно и то же) поле или оно должно быть у каждого объекта своё ???


 
id_privin ©   (2002-07-23 15:48) [4]

Это ты хитро спросил.
Мне все-равно, главное что значения у них у всех должны быть одинаковыми (Если я в одном экземпляре его поменял то оно у всех изменилось).


 
Игорь Шевченко ©   (2002-07-23 15:49) [5]

Сделайте глобальную переменную и не мучайтесь


 
Skier ©   (2002-07-23 15:50) [6]

>id_privin
Тогда см. Игорь Шевченко © (23.07.02 15:49)


 
MBo ©   (2002-07-23 15:55) [7]

Точного аналога нет.
Функциональность достигается через классовые методы и внутреннюю переменную модуля с классом.


 
id_privin ©   (2002-07-23 15:59) [8]

Нельзя глобальную, тк она должна быть сугубо private, иначе последствия могут быть плачевны.
Неужели нельзя как в плюсах написать чтото типа
variable : integer; <что-то здесь>;


 
Внук ©   (2002-07-23 16:00) [9]

Статических переменных класса, как в С, здесь нет. А жаль...


 
Skier ©   (2002-07-23 16:02) [10]

>id_privin
const
AMyVar : Integer = 100;


 
MBo ©   (2002-07-23 16:03) [11]

>и внутреннюю переменную модуля с классом
объявляешь ее в implementation и приватней не бывает


 
Внук ©   (2002-07-23 16:04) [12]

>>Skier © (23.07.02 16:02)
Я бы не назвал это "сугубо private" :)))


 
Skier ©   (2002-07-23 16:14) [13]

>Внук
Ты прав, коллега ! :)
Просто я уже думал что мы договорились насчёт
глобальной переменной...


 
MBo ©   (2002-07-23 16:16) [14]

unit Unit2;
interface
type TA=class
class function NumberOf:Integer;
// class function не обязательно, но позволяет обращаться БЕЗ создания экземпляра!
constructor Create;
end;

implementation
var
ANumber:Integer=0;//или в секции Initialization можно присвоить

{ TA }
constructor TA.Create;
begin
inc(ANumber);
end;

class function TA.NumberOf: Integer;
begin
Result:=ANumber;
end;




unit Unit1;
...
procedure TForm1.Button1Click(Sender: TObject);
var a:ta;
begin
a:=ta.create;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Caption:=IntToStr(TA.NumberOf);
end;




 
Внук ©   (2002-07-23 16:26) [15]

>>Skier ©
:)) Как показывает практика, все мало-мальски удобное рано или поздно переезжает из С++ в Object Pascal, хотя и с видоизменениями. И хотя перегрузки операторов, по-видимому, не будет, я все же надеюсь, что аналог
class ...
static int i;
когда-нибудь появится :)



Страницы: 1 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.012 c
8-13734
Злой
2002-03-27 12:30
2002.08.05
Приветствую!!! Не подскажите как осуществить такую идею оздаю список из mp3 файлов и


14-13811
Shtukatur
2002-07-11 17:12
2002.08.05
Как работать с начальством


14-13807
Jaja
2002-07-08 11:13
2002.08.05
Есть ли какие-нибудь книги для изучения Flash MX?


1-13679
Denisco
2002-07-22 17:16
2002.08.05
Мне нужно сохранить все изменения в программы в фаил.


1-13587
c0pYc@t
2002-07-24 12:21
2002.08.05
Socket