powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / При использовании COM-интерфейса не все методы срабатывают
2 сообщений из 2, страница 1 из 1
При использовании COM-интерфейса не все методы срабатывают
    #33663844
Сергей А.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На форме есть ActiveX элемент. В качестве источника данных для него можно использовать класс поддерживающий соответствующий интерфейс, определенный в этом же ActiveX. Вот как я его реализовал.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
DEFINE CLASS myclass AS SESSION OLEPUBLIC
	*
	IMPLEMENTS IVSFlexDataSource IN "c:\windows\system32\vsflex8u.ocx"
	*
	PROTECTED FUNCTION IVSFlexDataSource_GetFieldCount() AS Integer
		MESSAGEBOX("GetFieldCount",  64 , "IVSFlexDataSource")
		RETURN  4 
	ENDFUNC
	*
	PROTECTED FUNCTION IVSFlexDataSource_GetFieldName(Field AS Number) AS Integer
		MESSAGEBOX("GetFieldName",  64 , "IVSFlexDataSource")
		LOCAL res
		res = "name"
		DO CASE
			CASE Field =  0 
				res = "Angle (Deg)"
			CASE Field =  1 
				res = "Angle (Rad)"
			CASE Field =  2 
				res = "Sine"
			CASE Field =  3 
				res = "Co-Sine"
		ENDCASE
		RETURN res
	ENDFUNC
	*
	PROTECTED FUNCTION IVSFlexDataSource_GetRecordCount() AS Integer
		MESSAGEBOX("GetRecordCount",  64 , "IVSFlexDataSource")
		RETURN  360 
	ENDPROC
	*
	PROTECTED FUNCTION IVSFlexDataSource_GetData(Field AS Number, Record AS Number) AS STRING
		MESSAGEBOX("GetData",  64 , "IVSFlexDataSource")
		LOCAL res
		res = NULL
		DO CASE
			CASE Field =  0 
				res = Record
			CASE Field =  1 
				res = Record /  180  *  3 . 1416 
			CASE Field =  2 
				res = Sin(Record /  180  *  3 . 1416 )
			CASE Field =  3 
				res = Cos(Record /  180  *  3 . 1416 )
		ENDCASE
		RETURN res
	ENDFUNC
	*
	PROTECTED PROCEDURE IVSFlexDataSource_SetData(Field AS Number, Record AS Number, newData AS STRING) AS VOID
		MESSAGEBOX("This data is read-only.",  64 , "IVSFlexDataSource")
	ENDPROC
	*
ENDDEFINE
Проблема в том, что срабатывает только метод для сохранения данных (IVSFlexDataSource_SetData), остальные нет. Хочу заметить, срабатывает метод, который не возвращает данных в отличии от остальных.
В чем грабли? Заранее спасибо.
...
Рейтинг: 0 / 0
При использовании COM-интерфейса не все методы срабатывают
    #33664730
guid2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
такая же проблема с другим активом - проседуры работают а функции нет - значит в фоксе какие-то тонкости
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / При использовании COM-интерфейса не все методы срабатывают
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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