powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / OleDragDrop
6 сообщений из 6, страница 1 из 1
OleDragDrop
    #36317508
Korolyov_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как при обработке переноса объектов в
OleDragDrop узнать название источника переносимых объектов?

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
OleDragDrop
    #36317686
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
PUBLIC o
o = CREATEOBJECT('frm')
o.show()

DEFINE CLASS frm as Form 
name = 'frm'
width =  375 
PROCEDURE load
CREATE CURSOR test (f1 i, f2 c( 30 ))
FOR i =  1  TO  100 
	INSERT INTO test VALUES (i, TRANSFORM( 10  - i))
ENDFOR 
GO TOP IN test 
ENDPROC 
PROCEDURE init
WITH this
	.AddObject('cmd1','cmd')
	.cmd1.top =  24 
	.cmd1.left =  12 
	.cmd1.visible = .t. 

	.AddObject('txt2','txt')
	.txt2.top =  62 
	.txt2.left =  12 
	.txt2.visible = .t. 

	.AddObject('grd1','grd')
	.grd1.top =  12 
	.grd1.left =  132 
	.grd1.visible = .t. 
	 
ENDWITH 
ENDPROC 
ENDDEFINE 

DEFINE CLASS cmd as CommandButton 
name = 'cmd'
Caption = 'Тащи меня на грид'
oledragmode =  1 
height =  25 
width =  110 
ENDDEFINE 

DEFINE CLASS txt as Textbox
name = 'txt'
value = 'Тащи меня на грид'
oledragmode =  1 
height =  25 
width =  110 
ENDDEFINE 

DEFINE CLASS grd as Grid 
name = 'grd'
columncount =  2 
oledropmode =  1 
HighlightStyle  =  2 
Highlight = .t.
AllowCellSelection = .t.
width =  241 

PROCEDURE oledragdrop
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord
LOCAL laArr[  1  ], lnEll 

DO CASE
	CASE oDataObject.GetFormat( "VFP Source Object" )
* пытаемся получить ссылку на обьект
		aa = oDataObject.GetData( "VFP Source Object", @laArr )
		WAIT WINDOW 'Уф - донесли' NOWAIT 
		
		DO CASE 
		CASE (UPPER(aa.BaseClass) == 'TEXTBOX')
			replace f2 WITH 'Текстбокс ' + ALLTRIM(aa.value ) IN test 
		CASE (UPPER(aa.BaseClass) == 'COMMANDBUTTON')	
			replace f2 WITH 'Кнопка ' + ALLTRIM(aa.Caption ) IN test 
		ENDCASE 

		NODEFAULT
		
		this.Refresh() 
		
	ENDCASE 
ENDPROC 

PROCEDURE oledragover
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord, nState

* Проверяем 
IF oDataObject.GetFormat( "VFP Source Object" )
	WAIT WINDOW 'Несём, что надо' nowait
	* пытаемся выделить то что под курсором
	LOCAL nWhere_Out, nRelRow_Out, nRelCol_Out,	nView_Out 
	
	nWhere_Out =  0 
	nRelRow_Out =  0 
	nRelCol_Out =  0 
	nView_Out =  0 
	WITH this
	IF .GridHitTest(nXCoord, nYCoord ;
   , @nWhere_Out , @nRelRow_Out , @nRelCol_Out , @nView_Out)
   

		IF nWhere_Out =  3 
		   .ActivateCell(nRelRow_Out, nRelCol_Out)
		   .Refresh()
   
		ENDIF 
	ENDIF 
	ENDWITH 

ELSE
	WAIT WINDOW 'Не то' nowait
ENDIF 
ENDPROC 
ENDDEFINE 
...
Рейтинг: 0 / 0
OleDragDrop
    #36317826
Korolyov_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist,
У меня содержимое из oleListView1 и oleListView2 нужно перетаскивать
в oleListView3 с мульти-селектом.

Ни GetData( "VFP Source Object", @laArr )
Ни GetData( "Ole Variant", @laArr )

не прокатывает, почему то
...
Рейтинг: 0 / 0
OleDragDrop
    #36317972
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот код, если из Explore тащить на грид файл или папку.
Код: 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.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
PUBLIC o
o = CREATEOBJECT('frm')
o.show()

DEFINE CLASS frm as Form 
name = 'frm'
width =  375 
PROCEDURE load
CREATE CURSOR test (f1 i, f2 c( 30 ))
FOR i =  1  TO  100 
	INSERT INTO test VALUES (i, TRANSFORM( 10  - i))
ENDFOR 
GO TOP IN test 
ENDPROC 
PROCEDURE init
WITH this
	.AddObject('cmd1','cmd')
	.cmd1.top =  24 
	.cmd1.left =  12 
	.cmd1.visible = .t. 

	.AddObject('txt2','txt')
	.txt2.top =  62 
	.txt2.left =  12 
	.txt2.visible = .t. 

	.AddObject('grd1','grd')
	.grd1.top =  12 
	.grd1.left =  132 
	.grd1.visible = .t. 
	 
ENDWITH 
ENDPROC 
ENDDEFINE 

DEFINE CLASS cmd as CommandButton 
name = 'cmd'
Caption = 'Тащи меня на грид'
oledragmode =  1 
height =  25 
width =  110 
ENDDEFINE 

DEFINE CLASS txt as Textbox
name = 'txt'
value = 'Тащи меня на грид'
oledragmode =  1 
height =  25 
width =  110 
ENDDEFINE 

DEFINE CLASS grd as Grid 
name = 'grd'
columncount =  2 
oledropmode =  1 
HighlightStyle  =  2 
Highlight = .t.
AllowCellSelection = .t.
width =  241 

PROCEDURE oledragdrop
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord
LOCAL laArr[  1  ], lnEll 

DO CASE
	CASE oDataObject.GetFormat( "VFP Source Object" )
* пытаемся получить ссылку на обьект
		aa = oDataObject.GetData( "VFP Source Object", @laArr )
		WAIT WINDOW 'Уф - донесли' NOWAIT 
		
		DO CASE 
		CASE (UPPER(aa.BaseClass) == 'TEXTBOX')
			replace f2 WITH 'Текстбокс ' + ALLTRIM(aa.value ) IN test 
		CASE (UPPER(aa.BaseClass) == 'COMMANDBUTTON')	
			replace f2 WITH 'Кнопка ' + ALLTRIM(aa.Caption ) IN test 
		ENDCASE 

		NODEFAULT
		
		this.Refresh() 
	CASE oDataObject.GetFormat(  15  )

			replace f2 WITH 'Folder File ' IN test 
		NODEFAULT
		
		this.Refresh() 
		
	ENDCASE 
ENDPROC 

PROCEDURE oledragover
LPARAMETERS oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord, nState

* Проверяем 
DO CASE 
CASE  oDataObject.GetFormat( "VFP Source Object" ) OR oDataObject.GetFormat(  15  )
	WAIT WINDOW 'Несём, что надо' nowait
	* пытаемся выделить то что под курсором
	LOCAL nWhere_Out, nRelRow_Out, nRelCol_Out,	nView_Out 
	
	nWhere_Out =  0 
	nRelRow_Out =  0 
	nRelCol_Out =  0 
	nView_Out =  0 
	WITH this
	IF .GridHitTest(nXCoord, nYCoord ;
   , @nWhere_Out , @nRelRow_Out , @nRelCol_Out , @nView_Out)
   

		IF nWhere_Out =  3 
		   .ActivateCell(nRelRow_Out, nRelCol_Out)
		   .Refresh()
   
		ENDIF 
	ENDIF 
	ENDWITH 

OTHERWISE 
	WAIT WINDOW 'Не то' nowait
ENDCASE 
ENDPROC 
ENDDEFINE 
...
Рейтинг: 0 / 0
OleDragDrop
    #36318058
Korolyov_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может я чего не так понял, но у меня для oleListView

при обработке
oDataObject.GetFormat( "VFP Source Object" )
выдается ошибка - несовпадение типов.

Возможен только лишь вариант oDataObject.GetFormat( 1 ) - txt,
но при этом я могу только узнать свойство Text перетаскиваемого объекта.

мне нужно из 2х oleListView перетаскивать объекты в третий. и нужно уточнить,
из 1го или из 2го прилетел объект
...
Рейтинг: 0 / 0
OleDragDrop
    #36319069
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Репо код в студию, а то ломает самому писать.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / OleDragDrop
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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