Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...