powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DblClick()
10 сообщений из 10, страница 1 из 1
DblClick()
    #35516060
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ,
Создаю "налету" grid, количство столбцов в зависиомсти от ситуации.
Как мне налету добавить обработку form.grid1.columnX.text1.dblClick()?
То есть добавить метод на событие dblClick в text1 объекте?
Всем спасибо.
...
Рейтинг: 0 / 0
DblClick()
    #35516108
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть выполнять программу, которая сама себя на ходу изменяет. И как это представляется? И что так людей в Мюнхгаузены, вытаскивающие самого себя из болота за волосы, тянет?
"налету добавить обработку form.grid1.dblClick()" невозможно. Можно использовать только уже где-то описанный код.
1. Добавлять колонки грида, основанные на своем классе колонки с уже заданным методом.
2. Использовать BindEvent() и подцеплять к обработчику dblClick() еще и свою обработку.
3. При одинаковой реакции на все колонки использовать AllowCellSelection = .f. и перенести обработку в form.grid1.dblClick().
...
Рейтинг: 0 / 0
DblClick()
    #35516201
Код: 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
DblClick()
    #35516408
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скопировать в файл 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
DblClick()
    #35516506
2 Dag
2 Valerii

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

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

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

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


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