![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Static variables [D5, Win2k]
id_privin © (2002-07-23 14:29:00)Читаю, help , но не нахожу : Как в Delphi сделать статического члена класса, и как его проинициализировать.
Спасибо.
Внук (2002-07-23 16:26:00) [1]>>Skier ©
:)) Как показывает практика, все мало-мальски удобное рано или поздно переезжает из С++ в Object Pascal, хотя и с видоизменениями. И хотя перегрузки операторов, по-видимому, не будет, я все же надеюсь, что аналог
class ...
static int i;
когда-нибудь появится :)
MBo (2002-07-23 16:16:00) [2]unit Unit2;
interface
type TA=class
class function NumberOf:Integer;
// classfunction не обязательно, но позволяет обращаться БЕЗ создания экземпляра!
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;
Skier (2002-07-23 16:14:00) [3]>Внук
Ты прав, коллега ! :)
Просто я уже думал что мы договорились насчёт
глобальной переменной...
Внук (2002-07-23 16:04:00) [4]>>Skier © (23.07.02 16:02)
Я бы не назвал это "сугубо private" :)))
MBo (2002-07-23 16:03:00) [5]>и внутреннюю переменную модуля с классом
объявляешь ее в implementation и приватней не бывает
Skier (2002-07-23 16:02:00) [6]>id_privin
const
AMyVar : Integer = 100;
Внук (2002-07-23 16:00:00) [7]Статических переменных класса, как в С, здесь нет. А жаль...
id_privin (2002-07-23 15:59:00) [8]Нельзя глобальную, тк она должна быть сугубо private, иначе последствия могут быть плачевны.
Неужели нельзя как в плюсах написать чтото типа
variable : integer; <что-то здесь>;
MBo (2002-07-23 15:55:00) [9]Точного аналога нет.
Функциональность достигается через классовые методы и внутреннюю переменную модуля с классом.
Skier (2002-07-23 15:50:00) [10]>id_privin
Тогда см. Игорь Шевченко © (23.07.02 15:49)
Игорь Шевченко (2002-07-23 15:49:00) [11]Сделайте глобальную переменную и не мучайтесь
id_privin (2002-07-23 15:48:00) [12]Это ты хитро спросил.
Мне все-равно, главное что значения у них у всех должны быть одинаковыми (Если я в одном экземпляре его поменял то оно у всех изменилось).
Skier (2002-07-23 15:42:00) [13]>id_privin
Каждый объект должен использовать общее (одно и то же) поле или оно должно быть у каждого объекта своё ???
id_privin (2002-07-23 15:35:00) [14]Поясняю, в объекте есть поле, которое одинаково для всех объектов данного класса (например счетчик созданных объектов)
Skier (2002-07-23 14:47:00) [15]>id_privin
> сделать статического члена класса
Поясни...