:: Visual Foxpro, Foxpro for DOS
поля класса как Static в Java?
Zakharov_slava
Автор

Сообщений: 2022
Откуда: Алматы
Дата регистрации: 14.10.2005
Собственно вот.
В java есть такая возможность: объявлять свойства класса как Static что будет гарантировать что в независимости от количества экземпляров этого класса свойство будет одно на все эти экземпляры. Можно ли как нибудь извернуться чтоб подобное поведение смоделировать в фоксе...
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
PaulWist

Сообщений: 14614
Дата регистрации: 01.04.2004
Цитата:
DEFINE CLASS ClassName1 AS ParentClass [OF ClassLibrary] [OLEPUBLIC]
[[PROTECTED | HIDDEN] PropertyName1, PropertyName2 ...]


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
Zakharov_slava
Автор

Сообщений: 2022
Откуда: Алматы
Дата регистрации: 14.10.2005
Наверно я не совсем точно выразился. Одно свойство на все экземпляры подразумевает что при изменении этого свойства в одном экземпляре класса в других экземплярах он тоже изменялся. Т.е. что то типа того
a = CreateObject("Myclass")
b = CreateObject("Myclass")
a.StaticField = 3
?b.StaticField
Должно вывести по идее 3
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
PaulWist

Сообщений: 14614
Дата регистрации: 01.04.2004
Zakharov_slava
Наверно я не совсем точно выразился. Одно свойство на все экземпляры подразумевает что при изменении этого свойства в одном экземпляре класса в других экземплярах он тоже изменялся. Т.е. что то типа того
a = CreateObject("Myclass")
b = CreateObject("Myclass")
a.StaticField = 3
?b.StaticField
Должно вывести по идее 3

Слав, опять ты не точно выразился , тогда речь должна идти об обьектах построенных на экземплярах класса, а изменения должны коснуться КОГО-ЧЕГО - тех обьектов у которых иерархия класса одинакова с первоначальным или у которых совпадают базовые классы или ....

Решение предложить можно, но встречный вопрос - а нафига это нужно


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
AnatolyS

Сообщений: 4565
Откуда: Санкт-Петербург
Дата регистрации: 21.01.2002
Аналог в фоксе это глобальные переменны = через свойства класса (сеттеры геттеры) можно сделать к ним интерфейс.
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
Zakharov_slava
Автор

Сообщений: 2022
Откуда: Алматы
Дата регистрации: 14.10.2005
Точно! Я опять говорил неточно
В вышеприведенных постах заменить слово "экземпляр" словом "объект". Боюсь что опять буду неточен, ну да ладно...
А насчет того нафига это нужно приведу жавовский код
class Empoyee
{
private int id;
private static int nextId = 1;
Public void setId()
{
id = NextId;
NextId++;
}
}
Внезависимости от того сколько объектов класса будет сделано (50 100 или даже 1000) свойство NextId у них общее. То есть при каждом запуске метода SetId в любом объекте класса Empoyee NextId увеличивается. Т.е. работает как автоинкремент. Id у всех объектов Employee будет разное. NextId Будет навсех одно.
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
PaulWist

Сообщений: 14614
Дата регистрации: 01.04.2004
Цитата:
Внезависимости от того сколько объектов класса будет сделано (50 100 или даже 1000) свойство NextId у них общее. То есть при каждом запуске метода SetId в любом объекте класса Empoyee NextId увеличивается. Т.е. работает как автоинкремент. Id у всех объектов Employee будет разное. NextId Будет навсех одно.

Так - это понятно, теперь рассказывай что хочешь получить.

PS в принципе Толя уже рассказал идею.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
Zakharov_slava
Автор

Сообщений: 2022
Откуда: Алматы
Дата регистрации: 14.10.2005
Вариант от незримо присутствующего здесь Piva
o1=CreateObject("MyClass")
o2=CreateObject("MyClass")
o1.Prop=12
? o2.Prop
Define Class MyClass as Custom
Prop=0
Procedure Prop_Assign(NewVal)
With this
Local tmp[1], k, o
.Prop=NewVal
k=AInstance(tmp,This.Class)
If k > 0
For each o in tmp
&o..Prop=NewVal
Next
EndIf
EndWith
EndDefine
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
PaulWist

Сообщений: 14614
Дата регистрации: 01.04.2004
Ты Пиву слушай он плохому не научит, только мне всё равно не понятно - нафига это надо.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
AnatolyS

Сообщений: 4565
Откуда: Санкт-Петербург
Дата регистрации: 21.01.2002
Это, Слава, не вариант, а ерунда (Вадь, ты эта проявляйся давай - кто ясно видим, тот ясно излагает )
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
MichaelD

Сообщений: 7578
Дата регистрации: 14.05.2005
PaulWist
только мне всё равно не понятно - нафига это надо

Паша, у Славы видимо просто "хотелка" такая... :ao: Почему, скажем в Си-ях (да и в других ООП-языках) есть, а у фокса нет... ну изварачиваться/моделировать надо... :al:


------------------
С уважением,
Михаил Дроздов, Пермь, Россия




Исправлено 1 раз(а). Последнее : MichaelD, 02.11.06 13:19
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
PaulWist

Сообщений: 14614
Дата регистрации: 01.04.2004
Миша, просвятил, спасибо.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
Анонимный пользователь
коллекция - свойство
объект1
объект2
объект3
....

коллекция.свойство = ...

? объект1.парент.свойство
? объект2.парент.свойство
? объект3.парент.свойство

этого в лисе делается
и для
Цитата:
свойство будет одно на все эти экземпляры
этого достаточно
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
Zakharov_slava
Автор

Сообщений: 2022
Откуда: Алматы
Дата регистрации: 14.10.2005
Ну если интересует конкретная ситуация то она такая:
Есть контейнеры которые динамически валятся на форму.
В каждом контейнеры в зависимости от его ширины привязаны label (по правому краю )и Control (По левому)
(Допустим делается все это в методе Resize контейнера ).
If label.width+10+control.width >Container.Width
Container.Width = label.width+10+control.width
*Но так должно быть не только для этого контейнера но и для всех так как визуально это должно быть "ровненько"
endif



Исправлено 1 раз(а). Последнее : Zakharov_slava, 02.11.06 13:52
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
vitafort

Сообщений: 35
Откуда: Брест
Дата регистрации: 14.09.2006
Если я правильно понял, то проблема состоит в том, что если для одного контейнера наступает событие Resize, то остальные "уже вываленные" контейнеры этого же класса также должны пересмотреть свои размеры. Я бы попробовал в процедуре события прописать :

FOR i=1 TO Thisform.ControlCount
IF Thisform.Controls(i).Class='MyClassCnt'

* Ваш обыгрыш ситуации

If label.width+10+control.width >Container.Width
Container.Width = label.width+10+control.width
endif
*

ENDIF
ENDFOR
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Толя, думаешь я сам понял чего Славке надо ?


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
emu nado:

loX1=createobj('MyClass')
loX2=createobj('MyClass')
loX1.MyProp=1
?loX1.MyProp
?loX2.MyProp
loX1.MyProp=2
?loX1.MyProp
?loX2.MyProp

otvet

1
1
2
2



Исправлено 2 раз(а). Последнее : Penner, 02.11.06 16:50
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
По моему коду так и работает. Только по саьке решили уже как это далеть практически к конркетному контролу


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
Mitchman

Сообщений: 9978
Откуда: Николаев
Дата регистрации: 24.05.2002
работает - только нюанс - твой код не будет работать если не CreateObject
а AddObject а ему как раз там нать


------------------
-
«свидомые украинцы озабочены не столько созданием украинской культуры, сколько уничтожением русской»
-
Олесь Бузина
Ratings: 0 negative/0 positive
Re: поля класса как Static в Java?
Zakharov_slava
Автор

Сообщений: 2022
Откуда: Алматы
Дата регистрации: 14.10.2005
После долгих мыканий воспользовался советом alex11100(За что ему отдельное спасибо)
В коллекции в методе ADD дописал.
LPARAMETERS eItem, cKey, eBefore, eAfter
IF VARTYPE(eItem)="O"
IF eItem.width>this.cntwidth
this.cntwidth = eItem.width
LOCAL loCont as Container
FOR EACH loCont IN this
loCont.width=THIS.cntwidth
loCont.Resize()
ENDFOR
ENDIF
eItem.width = this.cntwidth
eItem.resize
ENDIF
Потом через эту коллекцию прогоняю все мои контейнера и ...!
Немножко плясок ... и все в порядке!
Всем спасибо!
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 19 (Гостей: 19)

© 2000-2024 Fox Club 
Яндекс.Метрика