|
Программирование >> Разработка пользовательского интерфейса
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 для каждого объекта.
Рис. 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 показан внешний вид разрабатываемой формы и отношения между описанными ниже объектами, событиями и методами.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |