Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DblClick() / 10 сообщений из 10, страница 1 из 1
01.09.2008, 14:21
    #35516060
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DblClick()
Народ,
Создаю "налету" grid, количство столбцов в зависиомсти от ситуации.
Как мне налету добавить обработку form.grid1.columnX.text1.dblClick()?
То есть добавить метод на событие dblClick в text1 объекте?
Всем спасибо.
...
Рейтинг: 0 / 0
01.09.2008, 14:41
    #35516108
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DblClick()
То есть выполнять программу, которая сама себя на ходу изменяет. И как это представляется? И что так людей в Мюнхгаузены, вытаскивающие самого себя из болота за волосы, тянет?
"налету добавить обработку form.grid1.dblClick()" невозможно. Можно использовать только уже где-то описанный код.
1. Добавлять колонки грида, основанные на своем классе колонки с уже заданным методом.
2. Использовать BindEvent() и подцеплять к обработчику dblClick() еще и свою обработку.
3. При одинаковой реакции на все колонки использовать AllowCellSelection = .f. и перенести обработку в form.grid1.dblClick().
...
Рейтинг: 0 / 0
01.09.2008, 15:13
    #35516201
DblClick()
Код: 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.
local loForm
loForm = newobject("myfrm")
loForm.show( 1 )
return 


DEFINE CLASS myfrm AS form

	DataSession =  2 
	DoCreate = .T.
	Name = "myfrm"


	ADD OBJECT grd1 AS grd WITH ;
		ColumnCount =  1 , ;
		Left =  24 , ;
		Top =  24 , ;
		Name = "Grd1", ;
		Cmn1.Name = "Cmn1"
		
	PROCEDURE Load
		create cursor tt (t i)
		for i= 1  to  10 
			insert into tt values (i)
		endfor
		go top
		*messagebox('load')
	ENDPROC


enddefine


DEFINE CLASS grd AS grid
	MemberClassLibrary = "program_test.prg"
	MemberClass = "cmn"
	Height =  200 
	Width =  320 
	Name = "grd"

	procedure init
		for each loColumn in this.Columns
			with loColumn
				.removeObject("text1")
				.addObject("txt1", "txtGrd")
			endwith
		endfor
	endproc 
	
	PROCEDURE onheadclick
		lparameters toHeader
		messagebox('Кликнули по заголовку '+toHeader.Caption)
	ENDPROC
ENDDEFINE

define class cmn as column
	headerclass = "head"				
	headerclasslibrary = "program_test.prg"

  	procedure init
		*messagebox('ИНИТ КОЛОНКИ')
	endproc	
enddefine

define class head as header	
	caption   = ""	

	procedure click
		this.Parent.Parent.onHeadClick(this)
		return .t.
	endproc      
enddefine


define class txtGrd as textBox
	
	visible = .t.
	
	procedure dblClick
		messagebox("2 раза кликнули по текстбоксу")
	endproc
enddefine

...
Рейтинг: 0 / 0
01.09.2008, 16:28
    #35516408
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DblClick()
Скопировать в файл tmp.prg и выполнить.
Код: 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.
PUBLIC loForm
loForm=CREATEOBJECT("form")
loForm.addobject('grid1','_grid')
loForm.grid1.visible=.t.
loForm.grid1._col1.cExecute='messagebox("2 раза кликнули по первой колонке")'
loForm.show
FOR EACH col IN loForm.grid1.columns
	BINDEVENT(col.text1,"dblClick",col,"xtExecute")
endfor

DEFINE CLASS _col as Column

	cExecute='messagebox("2 раза кликнули по текстбоксу")'
	PROCEDURE xtExecute
		EXECSCRIPT(This.cExecute)
	ENDPROC

ENDDEFINE

DEFINE CLASS _grid as Grid
	MemberClassLibrary = 'tmp.PRG'
	MemberClass = '_col'
ENDDEFINE

...
Рейтинг: 0 / 0
01.09.2008, 17:02
    #35516506
DblClick()
2 Dag
2 Valerii

совет - биндивентами не нужно злоупотреблять

если в Вашем случае возможно создать
виз-ю библиотеку и в ней создать контролы,
то лучше поступить как показал я

безобразное использовании биндивента
приводит к проблемам в отладке и сопровождении приложений
...
Рейтинг: 0 / 0
01.09.2008, 17:18
    #35516558
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DblClick()
2 12345вышелзайчикпогулять

Согласен.
...
Рейтинг: 0 / 0
01.09.2008, 17:19
    #35516560
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DblClick()
Спасибо конечно - решение есть но если я пользуюсь построителями форм?
...
Рейтинг: 0 / 0
01.09.2008, 17:19
    #35516564
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DblClick()
Не совсем правильно выразился - стандартными контролами..
...
Рейтинг: 0 / 0
01.09.2008, 17:21
    #35516566
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DblClick()
Все вкумекал, я сделаю классы и вставю их как показано на картинке. ;-)
...
Рейтинг: 0 / 0
01.09.2008, 20:13
    #35516832
FAM
FAM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DblClick()
Ну, заиць! прям в избранное угодил ))))
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DblClick() / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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