powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отседить событие изменения checkbox-а в grid
12 сообщений из 12, страница 1 из 1
отседить событие изменения checkbox-а в grid
    #35637625
beginner_foxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый!

Имеется грид со встроенным checkbox.
Какое событие происходит при щелчке по любому из cheсbox-ов в гриде?
Стоит задача по обновлению одно из свойств в форме при таком событии.
VFP9
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35637697
54321тут
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
InteractiveChange
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35637724
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
54321тутInteractiveChange
У меня что-то не очень хорошо работало с InteractiveChange, когда checkbox в колонке грида, но нормально работает Click() на checkbox.
С уважением, Алексей
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35637754
homik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
myFrm=Createobject("My_Form")
myFrm.Show( 1 )
WAIT CLEAR 
**
Define Class My_Form As Form
	Procedure Init
		Create Cursor tmp(fld_char c( 10 ),fld_log L)
		Insert Into tmp(fld_char,fld_log) Values("aaaaa",.T.)
		Insert Into tmp(fld_char,fld_log) Values("bbbbb",.F.)

		This.AddObject("MyGrd","Grid")
		This.MyGrd.ColumnCount= 1 
		This.MyGrd.AddObject('my_Col2','my_Column')
		This.MyGrd.Visible=.T.

		This.MyGrd.RecordSource="tmp"
		This.MyGrd.RecordSourceType= 1 

	Endproc

Enddefine
**
Define Class my_Column As Column
	Sparse=.F.
	Visible = .T.
	Procedure Init
		This.RemoveObject('Text1')
		This.AddObject('MyChk1','My_Checkbox')
	Endproc

Enddefine
**
Define Class My_Checkbox As Checkbox
	Procedure interactivechange
		Wait Window Transform(This.Value) NOWAIT NOCLEAR 
	Endproc
ENDDEFINE
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35638235
beginner_foxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
homik
Код: 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.
myFrm=Createobject("My_Form")
myFrm.Show( 1 )
WAIT CLEAR 
**
Define Class My_Form As Form
	Procedure Init
		Create Cursor tmp(fld_char c( 10 ),fld_log L)
		Insert Into tmp(fld_char,fld_log) Values("aaaaa",.T.)
		Insert Into tmp(fld_char,fld_log) Values("bbbbb",.F.)

		This.AddObject("MyGrd","Grid")
		This.MyGrd.ColumnCount= 1 
		This.MyGrd.AddObject('my_Col2','my_Column')
		This.MyGrd.Visible=.T.

		This.MyGrd.RecordSource="tmp"
		This.MyGrd.RecordSourceType= 1 

	Endproc

Enddefine
**
Define Class my_Column As Column
	Sparse=.F.
	Visible = .T.
	Procedure Init
		This.RemoveObject('Text1')
		This.AddObject('MyChk1','My_Checkbox')
	Endproc

Enddefine
**
Define Class My_Checkbox As Checkbox
	Procedure interactivechange
		Wait Window Transform(This.Value) NOWAIT NOCLEAR 
	Endproc
ENDDEFINE

Спасибо!
"Лучше один раз увидеть-чем сто раз услышать" :-))
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35638310
beginner_foxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавил класс My_checkbox к проекту:
Из события interactivechange этго класса вызываю событие основной формы
my_form.command4.click
но событие в основной форме не срабатывает.
Протой messagebox()-вызываемый из interactivechange-работает.
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35638398
BRROE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вместо my_form.command4.click
ThisForm.command4.click
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35638525
BRROE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из события interactivechange этго класса вызываю событие основной формы
my_form.command4.click

my_form.command4.click - не событие формы, а событие обьекта КНОПКИ command4 ЭТОЙ формы

Прописывать кучу кода в Кнопка.Клик не есть гуд
Тем более что вызов идет из РАЗНЫХ мест.
Будет ПРИНЦИПИАЛЬНО правильнее создать метод в форме и потом вызывать его хоть из кнопки хоть из шекбокса грида.

Странно что my_form.command4.click не вызвало явной ошибки

Совет: Создать метод формы (для примеру SuperDeystvie), записать в нем желаемое поведение.

Код кнопки command4.click
ThisForm.SuperDeystvie()

Код My_checkbox.interactivechange() АБСОЛЮТНО такой же:
ThisForm.SuperDeystvie()

Преимущество очевидное - легкость модефикации!
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35639160
beginner_foxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BRROE
Будет ПРИНЦИПИАЛЬНО правильнее создать метод в форме и потом вызывать его хоть из кнопки хоть из шекбокса грида.
Совет: Создать метод формы (для примеру SuperDeystvie), записать в нем желаемое поведение.

Спасибо!
А как создать метод в форме в визуальной среде проекта?
ThisForm.command4.click -тоже не помогает ...
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35639226
homik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35639345
beginner_foxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
homik
Спасибо! Метод добавить получилось.
При щелкании по checkbox должно меняться значение stats на 0 или 1.
Событие срабатывает, но есть странность поведения:
Когда подряд щелкаешь по одному и тому-же checkbox-у то значение в messagebox не пересчитывается- а показывает последнее предустановленное.
А по кнопке запускающей эту-же процедуру-пересчитывается.
Т.е. если снять флажок с checkbox-а и после нажать на кнопку( command4.Click ) запускающую эту-же процедуру( proc_sumab )-то потом при снятии/помечании checkbox-а значение в messagebox последнее и не прересчитывается при изменении того-же checkbox-а ...
Код: plaintext
1.
2.
3.
PROCEDURE proc_sumab
	SELECT NVL(SUM(abplt), 0 ) sumab FROM c_ab WHERE stats= 1  INTO CURSOR c_ab_result
	mesaagebox(CAST(c_ab_result.sumab as varchar( 20 )))
ENDPROC
Код: plaintext
1.
2.
PROCEDURE command4.Click
	thisform.proc_sumab() 
ENDPROC
...
Рейтинг: 0 / 0
отседить событие изменения checkbox-а в grid
    #35639905
begenner_foxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался.
Всем спасибо!
Была проблема между взаимодействием события по checkbox-а и курсором.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отседить событие изменения checkbox-а в grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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