Программирование >>  Разработка пользовательского интерфейса 

1 ... 104 105 106 [ 107 ] 108 109 110 ... 147


New Class

I- New Class Info-

Class Name: [mjlgj Based On:

From: Store In:

c: \nnvbook\sample\roub. vex

Cancel

Рис. 9.7. Диалоговое окно New Class

Как видно из рис. 9.7, имя нашего класса mygo, базовый класс Container и имя библиотеки, в которую будет включен класс, - Roub.vcx

Вы можете включать в форму объекты своего класса прямо из панели инструментов Form Controls, если предварительно зарегистрируете класс.

Зарегистрировать библиотеку классов в Конструкторе формы можно следующим образом:

1. Нажмите кнопку View Classes панели инструментов Form Controls.

2. В открывшемся меню выберите команду Add.

3. В диалоговом окне Open укажите библиотеку классов и нажмите кнопку Open.

Класс mygo содержит кнопки для перемещения указателя записи на первую запись таблицы, на предыдущую запись таблицы, на следующую запись таблицы, на последнюю запись таблицы, а также кнопки поиска, добавления новой записи, удаления текущей записи, сохранения изменений, отмены изменений и кнопку выхода из формы. На рис. 9.8 показан внешний вид класса mygo. В табл. 9.1 приведены имена элементов управления в классе mygo и значения свойства ToolTipText для каждого объекта.

Class DESjgnc

t - nub.

1 mygo

( <

>

t 1 *

I Выход] -1

FotHK [Fwni1

Рис. 9.8. Разработка нового класса в Конструкторе класса

Таблица 9.1. Назначение элементов класса mygo Объект Значение

Com1 Первая запись

Com2 Назад

Com3 Поиск

Com4 Вперед

Com5 Последняя запись

Com6 Добавить

Com7 Удалить

Com8 Сохранить

Com9 Отменить

Com10 Выход из формы

основан создаваемый класс (Based On), и имя библиотеки (Store In), в которой будет храниться новый класс (рис. 9.7). Либо в Project Manager выбрать вкладку Classes и нажать кнопку New.



Добавляем последовательно два новых метода для нашего класса, my show s u и myrefresh, выбрав в меню Form команду New Method.

В код метода my show s u запишем следующие строчки:

ThisForm.mygo1.Com8.Enabled = .F. ThisForm.mygo1.Com9.Enabled = .F. MyUpdate = 0 IF Del = 0

ThisForm.mygo1.Myrefresh

ELSE

Del = 0 ENDIF

В код метода myrefresh запишем: ThisForm.Text1.Refresh ThisForm.Text2.Refresh ThisForm.Text3.Refresh ThisForm.Text4. Refres h ThisForm.Refresh list

В код события Click для кнопки Com1 запишем:

GO TOP

ThisForm.mygo1.Com1.Enabled = .F. ThisForm.mygo1.Com2.Enabled = .F. ThisForm.mygo1.Com4.Enabled = .T. ThisForm.mygo1.Com5.Enabled = .T. ThisForm.mygo1.MyRefresh

В код события Click для кнопки Com2 запишем:

IF BOF()=.F.

SKIP -1

ThisForm.mygo1.Com4.Enabled = .T. ThisForm.mygo1.Com5.Enabled = .T.

ELSE

ThisForm.mygo1.Com1.Enabled = .F. ThisForm.mygo1.Com2.Enabled = .F.

GO TOP ENDIF

ThisForm.mygo1.MyRefresh

В код события Click для кнопки Com3 запишем: DO FORM Find ord.scx

В код события Click для кнопки Com4 запишем:

IF EOF()=.F.

ThisForm.mygo1.Com1.Enabled = .T. ThisForm.mygo1.Com2.Enabled = .T.

SKIP 1

IF EOF() = .T.

ThisForm.mygo1.Com4.Enabled=.F.

ThisForm.mygo1.Com5.Enabled=.F.

GO BOTTOM ENDIF ELSE

ThisForm.mygo1.Com4.Enabled=.F. ThisForm.mygo1.Com5.Enabled=.F. GO BOTTOM ENDIF

ThisForm.mygo1.MyRefresh

В код события Click для кнопки Com5 запишем:

GO BOTTOM

ThisForm.mygo1.Com1.Enabled=.T. ThisForm.mygo1.Com2.Enabled=.T. ThisForm.mygo1.Com4.Enabled=.F. ThisForm.mygo1.Com5.Enabled=.F. ThisForm.mygo1.MyRefresh

В код события Click для кнопки Com6 запишем: INSERT INTO order view (key salman, key customer, key model) ; VALUES (order view.key salman, order view.key customer, order view.key model)

MyUpdate=1

ThisForm.mygo1.Com8.Enabled=.T.



ThisForm.mygo1.Com9.Enabled = .T.

ThisForm.Text1.Visible=.F.

ThisForm.mygo1.MyRefresh

В код события Click для кнопки Com7 запишем: Answer d = MESSAGEBOX( Удалить данную запись ? , 4+32+256, Вопрос ) IF Answer d=6

DELETE

Del =1

SKIP 1

IF EOF() = .T.

GO BOTTOM ENDIF

MyUpdate=1

ThisForm.mygo1.Com8.Enabled=.T. ThisForm.mygo1.Com9.Enabled=.T. ThisForm.mygo1.MyRefresh ENDIF

В код события Click для кнопки Com8 запишем:

=TABLEUPDATE(.T.,.T.) ThisForm.mygo1.My Show s u

В код события Click для кнопки Com9 запишем:

=TABLEREVERT(.T.)

ThisForm.mygo1.My Show s u

В код события Click для кнопки Com10 запишем:

IF MyUpdate=1

Answer s u = MESSAGEBOX( Сохранить изменения ? , 4+32, Вопрос )

DO CASE

CASE Answer s u=6 &&Да

=TABLEUPDATE(.T.,.T.)

CASE Answer s u=7 &&Нет =TABLEREVERT(.T.) ENDCASE

ThisForm.mygo1.My Show s u

ENDIF

ThisForm.Release

Далее приведен программный код для событий проектируемой формы. На рис. 9.9 показан внешний вид разрабатываемой формы и отношения между описанными ниже объектами, событиями и методами.



1 ... 104 105 106 [ 107 ] 108 109 110 ... 147

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика