powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите разобраться с Define class
2 сообщений из 2, страница 1 из 1
Помогите разобраться с Define class
    #36648181
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите разобратся, первый раз создаю форму вручную.
Есть форма+grid+combobox(на 5 элементов, в зависимотси от значений которых в грид выводяться 5 разных таблиц, с разным количеством столбцов). Задача заключается в следующем: Необходимо при каждой смене значения combobox(загрузке очередной таблицы) формировать функции grd1.column[x].header1.click (сортировка по столбцам). Подскажите как это реализовать? Можно ли в процедуру procedure cmb1.interactivechange вставить процедуру grd1.column[x].header1.click
(Т.е.к примеру если alltrim(thisform.cmb1.value)="1" - то

procedure grd1.column1....
endproc

procedure grd1.column2....
endproc и т.д.) ?

У меня почему то не хочет.

Код: 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.
ob = CREATEOBJECT("new")
ok=.t.
IF VARTYPE (ob) = [O]
ob.closable=.t.
ob.backcolor=rgb( 10 , 130 , 100 )
ob.caption="Форма редактирования"
ob.height= 400 
ob.width= 825 
  ob.SHOW()
    CLEAR CLASS new
 ENDIF

DEFINE CLASS new AS form 

ADD OBJECT cmb1 AS combobox with;
 top= 85 ,;
 left= 95 ,;
 width= 135 ,;
 height= 25 

procedure cmb1.interactivechange

ConnectServ=SQLSTRINGCONNECT(GETVARIABLE('SPP_SQLSTRCONNECT'),.T.)
    if alltrim(thisform.cmb1.value)="1"
         sqlexec(ConnectServ,'select * from spravproc','cur_temp')
    endif
    if alltrim(thisform.cmb1.value)="2"
	 sqlexec(ConnectServ,'select * from sistplata','cur_temp')
    endif
    if alltrim(thisform.cmb1.value)="3"
	 sqlexec(ConnectServ,'select * from spravozu','cur_temp')
    endif
    if alltrim(thisform.cmb1.value)="4"
	 sqlexec(ConnectServ,'select * from hdd','cur_temp')
    endif
	if alltrim(thisform.cmb1.value)="5"
	 sqlexec(ConnectServ,'select * from vidcard','cur_temp')
    endif
sqldisconnect(ConnectServ)
 
thisform.grd1.recordsourcetype= 1 
thisform.grd1.recordsource="cur_temp"

endproc	

ADD OBJECT grd1 AS grid with;
 left= 361 ,;
 top= 12 ,;
 height= 332 ,;
 width= 456 ,;
 readonly=.t.
 allowcellselection=.f.

*><

ENDDEFINE

Если в место *>< вставить код типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if alltrim(thisform.cmb1.value)="1"
procedure grd1.column1.header1.click
.......
endproc
procedure grd1.column2.header1.click
.......
endproc
....
endif
Пишет что column1, column2 не существуют.
...
Рейтинг: 0 / 0
Помогите разобраться с Define class
    #36648264
faustgreenПомогите разобратся, первый раз создаю форму вручную.
Есть форма+grid+combobox(на 5 элементов, в зависимотси от значений которых в грид выводяться 5 разных таблиц, с разным количеством столбцов). Задача заключается в следующем: Необходимо при каждой смене значения combobox(загрузке очередной таблицы) формировать функции grd1.column[x].header1.click (сортировка по столбцам).Все остальное можно не читать ибо уже написанное демонстрирует полное непонимание принципов ООП и совершенно неправильный выбор способа решения задачи.
Классы вместе со своими методами должны создаваться во время разработки, а не во время исполнения программы. Программа пишется на основе классов, а не программа создает классы.
Нарисуйте классы колонок, гридов и т.д. и их используйте в своей программе.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите разобраться с Define class
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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