powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Класс с IMPLEMENTS загнать в библиотеку...
25 сообщений из 68, страница 2 из 3
Класс с IMPLEMENTS загнать в библиотеку...
    #34721065
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я хочу, чтобы в моей библиотеке mylib.vcx появился такой класс. Проблема в том, что я не знаю как визуальными средствами добавить поля oFoo1 и oFoo2.


Меню Class->New property
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34723971
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov я хочу, чтобы в моей библиотеке mylib.vcx появился такой класс. Проблема в том, что я не знаю как визуальными средствами добавить поля oFoo1 и oFoo2.


Меню Class->New property

ну елы-палы, Сергей! Так можно создать только поле класса неопределенного типа, а мне нужно, чтобы поле было, например типа Collection - как раз то, что достигается при использовании конструкции
Код: plaintext
1.
ADD OBJECT oFoo AS Collection
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34724051
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А такие элементы добавляются перетаскиванием или из тулбара с классами, или из проекта. Берете свою коллекцию и тАщите на свой класс.
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34724060
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cannot add object to non-container classes
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34724075
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И куда ж его пытаетесь загнать-то? В какой класс запихиваете?
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34724113
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в Custom, как уже писалось выше. Хотелось бы создавать на основе невизуального компонента для минимизации расхода ресурсов, да и сами наследуемые классы должны быть невизуальные. Класс Container, насколько я понимаю, больше памяти сожрет.. (надо будет поэксперементировать)
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34724785
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34729744
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34731207
Strong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Gusev Sergey Sizov я хочу, чтобы в моей библиотеке mylib.vcx появился такой класс. Проблема в том, что я не знаю как визуальными средствами добавить поля oFoo1 и oFoo2.


Меню Class->New property

ну елы-палы, Сергей! Так можно создать только поле класса неопределенного типа, а мне нужно, чтобы поле было, например типа Collection - как раз то, что достигается при использовании конструкции
Код: plaintext
1.
ADD OBJECT oFoo AS Collection



а что мешает в ините класса прописать
this.oFoo = createobject(тра та та)
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34732259
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, ничто не мешает,
но ихмо это не есть гуд, хочется по-честному, как надо объявить все.

Я уже так даже деал, но начальство при этом начинает справедливо г...ться.
К тому же при редактировании исходников удобно было бы подсказки по
членам класса получать при нажатии "."
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34732293
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_GusevВообще, ничто не мешает,
но ихмо это не есть гуд, хочется по-честному, как надо объявить все.

Я уже так даже деал, но начальство при этом начинает справедливо г...ться.
К тому же при редактировании исходников удобно было бы подсказки по
членам класса получать при нажатии "."
К сожалению по честному нельзя :(
Либо "визуально" кидать объект мышкой (тогда надо использовать какой-то контейнер, а не Custom) либо при каждом использовании объявлять переменную и работать с ней (что тоже не очень):
Код: plaintext
1.
2.
local loObj as 'MyClass' of 'MyLib'
loObj = this.oObj
loObj.
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34732342
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, с этим ясно, а есть ли мнения по моему второму вопросу

автор
почему фокс не дает объявить внутри класса член с тем же типом, что и сам класс? и можно ли это преодолеть?


как я сейчас понимаю, фокс не любит рекурсивного объявления классов.. Есть ли способы цивильно его усмирить?
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34732514
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Gusevпочему фокс не дает объявить внутри класса член с тем же типом, что и сам класс? и можно ли это преодолеть?


А в чем проблема? Пример класса
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
DEFINE CLASS clstest AS custom
	Name = "clstest"

	PROCEDURE Init
		this.AddProperty('Value')
		this.value =  1 
	ENDPROC

	PROCEDURE addsubclass
		this.AddProperty('oTest')
		this.oTest = NewObject('clsTest', 'testclass')
		this.oTest.value =  2 
	ENDPROC
ENDDEFINE
Используем:
Код: plaintext
1.
2.
3.
loTest = NewObject('clsTest', 'testclass')
loTest.AddSubClass()
?loTest.Value
? loTest.oTest.Value
Все работает.
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34733518
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, работает, а вот так ...

Код: plaintext
1.
2.
3.
4.
5.
6.
DEFINE CLASS man AS custom
	Name = "man"

	ADD OBJECT oFriend AS man
	ADD OBJECT oEnemy AS man
ENDDEFINE

не работает.

Код: plaintext
1.
2.
3.
dd= NEWOBJECT("man")

-----------> Cannot add OFRIEND. Class definition is cyclical



еще не работает ( :-) ) вот так почему-то:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
DEFINE CLASS man AS custom
	Name = "man"


	PROCEDURE INIT
	
		this.AddProperty( "oFriend" )
		this.AddProperty( "oEnemy" )
				
		this.oFriend = NEWOBJECT("man")
		this.oEnemy = NEWOBJECT("man")
	ENDPROC
ENDDEFINE

dd= NEWOBJECT("man")

-----------> Allowed DO nesting or expression evaluation level exceeded
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34733522
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В последнем случае, если посмотреть в Debugger-e,
фокс много раз пытается вызвать INIT для класса, и зацикливается похоже.
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34733531
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а в первом случае даже ключевое слово NOINIT не помогает:
-----------> Cannot add OFRIEND. Class definition is cyclical.

Достала уже эта кривизна..
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34733552
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока что удовлетворился таким вариантом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
DEFINE CLASS man AS custom
	Name 	= "man"
	oFriend	= NULL
	oEnemy	= NULL
	
	
	PROCEDURE oFriend_ACCESS
		RETURN	IIF( ISNULL( this.oFriend ), NEWOBJECT("man"), oFriend )
	ENDPROC
	
	PROCEDURE oEnemy_ACCESS
		RETURN	IIF( ISNULL( this.oEnemy ), NEWOBJECT("man"), oEnemy )
	ENDPROC
ENDDEFINE

Жду недождусь того момента, когда все у нас перейдут на C#.
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34734785
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЖду недождусь того момента, когда все у нас перейдут на C#.
ты у мира спроси, что получится
(трудозатраты + фонд оплаты)
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34734834
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимоты у мира спроси, что получится
(трудозатраты + фонд оплаты)
Давно подсчитано для версии .NET 1.1 - приблизительно в 6 раз больше, чем на FoxPro...
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34734856
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЖду недождусь того момента, когда все у нас перейдут на C#.
ФОрум закрыт - все ушли на .NET
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34735274
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
piva авторЖду недождусь того момента, когда все у нас перейдут на C#.
ФОрум закрыт - все ушли на .NET

+1 Ж)

2 Sergey Ch

проснитесь, в сети уже .NET 3-ий выложен, а 2-ой уже вовсю юзают.
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34735284
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при том бесплатно можно юзать (SharpDevelop + .NET FrameWork 2.0)
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34735985
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_GusevЖду недождусь того момента, когда все у нас перейдут на C#.
Не дождешься! ;-)
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34738096
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если ты бы являлся моим руководителем, я мог бы с тобой согласиться :-p
...
Рейтинг: 0 / 0
Класс с IMPLEMENTS загнать в библиотеку...
    #34749085
Anton_Gusev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чето не получается объявить adodb.connection внутри класса:

Код: plaintext
1.
2.
3.
4.
5.
DEFINE CLASS MyCustom AS Custom
     Name = "MyCustom"

     ADD OBJECT Conn AS ADODB.Connection
ENDDEFINE

При этом простое объявление
Код: plaintext
1.
LOCAL Conn AS ADODB.Connection

отрабатывает нормально. В документации написано:
мелкософт
[ADD OBJECT [PROTECTED] ObjectName AS ClassName2
Specifies to add an object from a Visual FoxPro base class, user-defined class or subclass, or an ActiveX custom control to the class definition. The PROTECTED keyword prevents access and changes to the object's properties from outside the class or subclass definition.


Врут чтоль, или я что-то не понимаю? Или не нравится точка в "ADODB.Connection"?
...
Рейтинг: 0 / 0
25 сообщений из 68, страница 2 из 3
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Класс с IMPLEMENTS загнать в библиотеку...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]