- •Методические указания для проведения практического занятия № 3 – 2 сем по «Алгоритмизации и Программированию»
- •Тема: Разработка проекта с использованием компонентов ListBox и ComboBox
- •План проведения практического занятия №3-2сем
- •Инструктивно - методические указания и план проведения практического занятия № 3– 2с
- •Вводная теоретическая часть
- •Основная часть
- •Заключительная часть
- •Контрольные вопросы:
Основная часть
2.1. Составим приложение, работа которого будет моделировать калькулятор. В проекте используем следующие компоненты: Label, Edit, ComboBox. На форме необходимо расположить три компонента Edit. Над каждым компонентом Edit расположить компонент Label. В окне Object Inspector в свойстве Font сделать установки шрифта в окне настройки, а в свойстве Caption ввести текст: «первый операнд» - для Label1, «второй операнд» - для Label2, «результат» - для Label3. В окне Object Inspector очистить свойство Text компонентов Edit, а для компонента ComboBox в свойство Text ввести «выбор операции». Сами операции задать используя свойство Items. В каждой строке записать одну какую-либо операцию (сложить, умножить и т.д.). Счет строк начинается с нуля. Обработчик событий написать в процедуре, заготовка которой откроется по двойному щелчку на компоненте ComboBox. Для выбора строки использовать оператор Case of:
case ComboBox1.ItemIndex of
0: edit3.Text:=inttostr(strtoint(edit1.Text)+strtoint(edit2.Text));
и т.д.
2.2. Составим приложение, которое будет находить среднее арифметическое чисел, помещенных в ListBox. Количество, помещенных в ListBox чисел можно определить используя свойство Count.
n:=listbox1.Items.Count;
Используя кнопки Button обеспечить возможность добавления чисел в ListBox и удаления чисел.
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
i:=listbox1.ItemIndex;
listbox1.Items.delete(i);
end;
procedure TForm1.Button3Click(Sender: TObject);
var code:integer;
a:real;
begin
val(edit2.Text,a,code);
if code=0 then listbox1.Items.Add(floattostr(a))
else showmessage('введите число');
edit2.Text:='';
edit2.SetFocus;
end;
2.3. Выполните следующий пример с генерацией и модификацией строк в компоненте ListBox
Создайте новый проект в Delphi.
Сохраните в папке класса файл модуля под именем ListB_pas, а файл проекта под именем ListB dpr.
Поместите компонент ListBox1 со страницы Standard палитры компонентов. Поместите три компонента Button на форму. Определите для первой кнопки заголовок " Очистить ", для второй — " Ввод значений ", для третьей — " Датчик чисел ". Для этого используйте свойство Caption страницы Properties инспектора объекта. Произведите щелчок по кнопкам и запишите методы обработки события OnClick для каждой кнопки:
procedure TForm1.Button1Click(Sender: TObject);
begin ListBox1.Items.Clear; end;
procedure TForm1.Button2Click(Sender: TObject);
var I:Integer;
begin for I:=1 to 10 do
ListBox1.Items.Add('Координата Х'+ IntToStr(I));
end;
procedure TForm1.Button3Click(Sender: TObject);
var J:Integer;
begin
Randomize; J:=0;
while J < 10 do
begin
J:=J + Random(10);
ListBox1.Items.Add('Координата Y' + IntToStr(J));
end;
end;
Щелчок левой кнопкой мыши по компоненту Button с заголовком "Очистить" удаляет содержимое компонента ListBox1. Щелчок по кнопке "Ввод значений" позволяет ввести десять последовательных чисел координаты Х в список. Щелчок по кнопке с заголовком "Датчик чисел" позволяет ввести значения координаты Y. Здесь присутствует цикл while , который использует счетчик, определяющий значения параметров случайным образом. Для этого вызывается процедура Randomize, которая инициирует генератор случайных чисел и функцию Random со значением диапазона равным 10.
Вы можете вводить текстовые строки в компонент на этапе разработки приложения, используя Редактор списка строк. Дважды произведите щелчок по кнопке с тремя точками справа от слова (TStrings), используя страницу Properties инспектора объекта. Откроется диалоговое окно Редактора списка строк для свойств типа TStrings и любых его потомков. Редактор позволяет вам ввести текст в свободной форме, сформатированный в строчки во время разработки, обеспечивая, таким образом, начальное содержимое списка строк. После ввода строк необходимо нажать OK. Строки, которые вы ввели, заполняют окно списка во время разработки и при выполнении приложения. Теперь вы можете запустить свое приложение, чтобы проверить функционирование окна списка с единственным выбором.
По умолчанию, компонент ListBox становится окном списка с единственным выбором. Только один элемент в таком списке может быть выбран в каждый момент времени. Этот выбранный элемент подсвечивается. Вы можете перемещать подсветку посредством клавиш: стрелка вверх и стрелка вниз.
Добавьте на форму кнопку Button4 и компонент Edit1. Программный код, который вы запишите, позволит удалять строки, ненужные для дальнейшей работы. Причем число, введенное в текстовый редактор Edit1, определит номер удаляемой строки (помните, о том, что номер строки на единицу меньше).
Щелчок по кнопке Button5 с заголовком "Добавить строку" даст вам возможность добавить строку в компонент ListBox1, которую вы введете в компонент Edit2.
Поместите на форму компонент Button6 с заголовком " Изменить местоположение строки". Щелчок по этой кнопке позволит вводить номер строк в компонент Edit1 и Edit2, вы сможете менять местами строки внутри компонента ListBox1.
Поместите на форму компонент Button7 с заголовком "Подсчет строк в компоненте". Щелчок по данной кнопке приводит к появлению информации в компоненте Label3 о числе записей в компоненте ListBox1.
Сортировку записей в компоненте ListBox1 по алфавиту вы можете осуществить щелчком по кнопке Button8 с заголовком "Сортировка записей по алфавиту".
Поместите на форму компонент ListBox2, кнопку Button9. Программный код для кнопки позволяет выбирать цвет для этого компонента . Вы можете выбрать в компоненте интересующий вас цвет, а затем щелчком по кнопке осуществить свой выбор.
Программный код для данного примера имеет вид:
procedure TForm1.Button4Click(Sender: TObject);
var K:Integer;
begin
K:=StrToInt(Edit1.Text);
ListBox1.Items.Delete(K);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
ListBox1.Items.Add(Edit2.Text);
end;
procedure TForm1.Button6Click(Sender: TObject);
var I,J:Integer;
begin
I:=Strtoint(Edit1.Text);
J:=StrToInt(Edit2.Text);
ListBox1.Items.Exchange(I,J);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Label3.Caption:='Всего '+ IntToStr(ListBox1.Items.Count) + ' записей';
end;
procedure TForm1.FormCreate(Sender: TObject);
var I:Integer;
begin
ListBox2.Items.Add('Blue');
ListBox2.Items.Add('Yellow');
ListBox2.Items.Add('Red');
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
ListBox1.Sorted:=True;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
if ListBox2.Selected[0] then ListBox2.Color:=clBlue;
if ListBox2.Selected[1] then ListBox2.Color:=clYellow;
if ListBox2.Selected[2] then ListBox2.Color:=clRed;
end; end.
Результат работы приложения List показан на рисунке 3.