АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция
|
Задание для самостоятельного выполнения, №8
| Задание
| Подсказка
|
| Списки ListBox1 и ListBox2 сделать поочередно доступными после нажатия клавиши Enter.
| В Object Inspector свойству Enabled компонента ListBox2 придать значение False, а в процедуру KeyPressed, относящуюся к ListBox1, включить строки:
ListBox2.Enabled:= True; ListBox1.Enabled:= False; Form1.ActiveControl:= ListBox2;
|
| Выполнить проект так, чтобы при правильном выборе названия физической величины слово в левом списке исчезало.
| В процедуру KeyPressed, относящуюся к ListBox2, там, где обрабатывается правильный ответ, включить:
ListBox1.Items.Delete(Num1); ListBox1.Items.Insert(Num1, ‘’);
|
| Сделайте доступными списки ListBox1 и ListBox2ни только после нажатия клавиши Enter, но и по щелчку мыши.
|
|
| Расширить количество физических величин до 10. Внести необходимые изменения в программу.
|
|
| Ввести дополнительную кнопку Повторить, которая позволяет повторно выполнить задание, восстановив списки ListBox1.
|
|
| Вывести на экран количество правильных ответов.
|
|
Листинг программы, №8
Для самоконтроля ниже приводится базовый текст программы.
unit Unit7; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; ListBox1: TListBox; ListBox2: TListBox; Label3: TLabel; BitBtn1: TBitBtn; Label4: TLabel; BitBtn2: TBitBtn; procedure BitBtn1Click(Sender: TObject); procedure ListBox1KeyPress(Sender: TObject; var Key: Char); procedure ListBox2KeyPress(Sender: TObject; var Key: Char); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; c,r,num1,num2:integer; implementation {$R *.DFM} procedure TForm1.BitBtn1Click(Sender: TObject); begin Close end; procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char); begin If (Key=#13) and (Form1.ListBox1.Items.Strings[Form1.1ListBox1.ItemIndex]<>'') Then begin num1:=form1.listbox1.itemindex; form1.ListBox1.Enabled:=False; form1.ListBox2.Enabled:=True; form1.ActiveControl:=Listbox2 end end; procedure TForm1.ListBox2KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin case form1.ListBox2.ItemIndex of 0:num2:=2; 1:num2:=4; 2:num2:=7; 3:num2:=0; 4:num2:=3; 5:num2:=1; 6:num2:=6; 7:num2:=8; 8:num2:=5; 9:num2:=9; end; if num1=num2 then begin form1.Label4.Caption:='Верно!'; r:=r+1 end else form1.Label4.Caption:='Ошибка!'; c:=c+1; form1.ListBox1.Items.Delete(num1); form1.ListBox1.Items.Insert(num1,''); if c=10 then showmessage('Тест окончен. Оценка:'+ inttostr (r div 2 + ord(r div 2<1))+' (правильных ответов: '+inttostr(r)+')'); form1.ListBox1.Enabled:=0=0; form1.ListBox2.Enabled:=0=0; form1.ActiveControl:=listbox1 end end; procedure TForm1.BitBtn2Click(Sender: TObject); begin c:=0; r:=0; num1:= -1; num2:= -1; form1.ListBox1.Items.LoadFromFile('fiz1.txt'); end; end.
|
Содержание файла 'fiz1.txt'
| | Содержание файла 'fiz2.txt'
| Вольт Ньютон Метр Ватт Джоуль Вебер Кулон Герц Секунда Ампер
| | Длина Работа Частота Напряжение Мощность Сила Заряд Время Индуктивность Сила тока
| 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 | Поиск по сайту:
|