Void CPrimDlg::OnAdd() //обработка кнопки «Добавить»
{ UpdateData(); m_list1.AddString(m_edit3) //добавить строку в список } Void CPrimDlg::OnDelete()//обработка кнопки «Удалить» { if (m_list1.GetCurSel()!=LB_ERR) //проверка выделенной строки в списке m_list1.DeleteString(m_list1.GetCurSel()); //удалить выделенную строку UpdateData(); //обновить объекты формы } Void CPrimDlg::OnDblclkList1() //обработка двойного щелчка по списку { if (m_list1.GetCurSel()!=LB_ERR) //проверка выделенной строки в списке { CString r; //объявление строковой переменной m_list1.GetText(m_list1.GetCurSel(),r); //r=выделенная строка списка SetDlgItemText(IDC_EDIT3, r); //значение r помещается в поле EDIT3 } } 5. Сохраним проект и нажмем кнопку выполнения Execute Program. Линейные регуляторы и индикаторы Продолжим формирование предыдущего примера. 1. Разместим элементы Progress (IDC_PROGRESS1); Slider (IDC_SLIDER1) со свойствами Tick marks (вывод меток), Auto ticks (автоматический вывод меток), Client edga (вывод рамки); CheckBox (IDC_CHECK2, Caption=Сброс) (рис. 7.2.1). 2. Назначим переменные m_progress1 (категории Control для элемента IDC_PROGRESS1), m_check2 (категории Value для IDC_CHECK2), m_slider1 (категории Control для IDC_SLIDER1). 3. Добавим функцию OnCheck2 формирования сообщений BN_CLICKED для элемента IDC_CHECK2 и функцию OnHscroll обработки сообщений WM_HSCROLL для класса CprimDlg. 4. Нажмем кнопку Edit Code и откорректируем функции. BOOL CPrimDlg::OnInitDialog() //инициализация формы с элементами {... //неизменяемая часть функции m_slider1.SetRange(0,1024,TRUE);//диапазон изменения регулятора m_slider1.SetTicFreq(128); //расстояние между метками на шкале m_slider1.SetLineSize(32); //длина шага при нажатии клавиш‑стрелочек m_slider1.SetPageSize(256); //длина шага при нажатии клавиш PgDn, PgUp m_progress1.SetRange(0,1024); //диапазон изменения индикатора return TRUE; } Void CPrimDlg::OnCheck2()//обработка переключателя «Сброс» { UpdateData(); if (m_check2) m_progress1.SetPos(0); //сброс } void CPrimDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) //функция обработки перемещения бегунка регулятора
{ //преобразование указателя класса CscrollBar на указатель CSliderCtrl CSliderCtrl*slider=(CSliderCtrl*)pScrollBar; //GetPos ‑ текущее значение бегунка, SetPos ‑ установка нового положения if (!m_check2 &&(m_progress1.GetPos()<slider->GetPos())) m_progress1.SetPos(slider->GetPos()); //новое состояние индикатора CDialog::OnHScroll(nSBCode,nPos,pScrollBar); //выполнение OnHScroll } Вопросы для самопроверки и контроля Вопросы для самопроверки 1. Каково назначение функции UpdateData(1)? 2. Укажите категорию переменной, назначенной ActiveX‑объекту. Контрольные вопросы 1. Каково назначение функции UpdateData(0)? 2. Каково назначение метода Set<имя свойства>(<значение>)? 3. Каково назначение метода Get<имя свойства>()? Глава 8. Лабораторный практикум
Примеры программирования задач Игра «Угадай число» (Delphi) Составим программу‑игру «Угадай число» (рис. 8.1.1.1). Рис. 8.1.1.1. Вид формы игры «Угадай число»
В поле Edit1 задается число N для формирования случайного положительного целого числа в интервале [0,N], и это число должен угадать игрок. Кнопкой Загадать число (Button1) формируется это случайное число. Игрок вводит предполагаемое число в поле Edit2 и нажимает кнопку Попытка. Если это число больше загаданного, то в поле Edit3 (Результат) выводится текст подсказки Перелет. Если это число меньше загаданного, то выводится текст Недолет. Наконец, при совпадении выводится текст Угадал. Число использованных попыток выводится в поле Edit4. Разместим на форме соответствующие компоненты и зададим значения свойству Caption. Приведем тексты процедур программы. Var // раздел переменных модуля Unit1 X:Integer; // объявление внешней переменной X - загадываемое число Procedure TForm1.Edit1Change(Sender: TObject); // изменение поля Edit1 Var v,e:Integer;// v ‑ значения числа после перевода, e ‑ код ошибки (0-нет) Begin Val(Edit1.Text,v,e); // перевод числа из поля Edit1.Text в V (п. 1.7.5)
Button1.Enabled:=e=0; // условие доступности Button1 Button2.Enabled:=False; // блокировка кнопки Button2 (Попытка) Edit2.Enabled:=e=0 // условие доступности поля Edit2 end; Procedure TForm1.Edit2Change(Sender: TObject); // изменение поля Edit2 Var v,e:Integer; // v ‑ значения числа после перевода, e ‑ код ошибки (0-нет) Begin Val(Edit2.Text,v,e); // перевод числа из поля Edit2.Text в V Button2.Enabled:= e=0; // условие доступности Button2 end;
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|