Використання списків для введення інформації 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Використання списків для введення інформації



Компонент класу ListBox представляє собою стандартний для Windows список вибору, за допомогою якого користувач може вибрати один чи кілька елементів вибору.

Властивості компонента:

Назва властивості Дія
Columns: Longint; Визначає кількість стовпчиків елементів у списку.
ItemIndex: Integer; Містить індекс вибраного елемента.
Items: TStrings; Містить набір рядків, показуваних у компоненті.
Multiselect: Boolean; Дозволяє/скасовує вибір декількох елементів
Selcount: Integer; Містить кількість обраних елементів
Selected [x: Integer]: Boolean; Містить ознаку вибору для елемента з індексом Х (перший елемент має індекс 0)
Sorted: Boolean; Дозволяє/скасовує сортування рядків за алфавітом.

Комбінований список ComboBox являє собою комбінацію списку ListBox і редактора Edit і тому більшість його властивостей і методів запозичені в цих компонентів. Існують п'ять модифікацій компонента, обумовлені його властивістю Style: у першому випадку список завжди розкритий, в інших він розкривається після натискання кнопки праворуч від редактора. У модифікації csDropDownList редактор працює в режимі відображення вибору і його не можна використовувати для введення нового рядка (в інших модифікаціях це можливо).

Фактично, «своїми» у компонента є лише методи і події, зв'язані з розкриттям списку:

Назва властивості чи методу Дія
DropDownCount: Integer; Визначає кількість елементів списку, поява яких не приводить до відкриття смуги прокручування. За замовчуванням 8.
DroppedDown: Boolean; Визначає, чи розкритий список у даний момент.
OnDropDown: TNotifyEvent; Відбувається при зміні стану списку.

Наприклад:

Дана процедура забезпечує відображення у надписі значення елемента, обраного зі списку.

procedure TForm1.Button1Click(Sender: TObject);

begin

Label1.caption:= ComboBox1.Items[ComboBox1.ItemIndex];

end;

Дана процедура забезпечує додавання елемента у список при його введенні в поле введення комбінованого списку і натисканні клавіші Enter.

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin

IF Key = #13 THEN

begin

ComboBox1.Items.Add(ComboBox1.Text);

ComboBox1.Text:= '';

Key:= #0;

end;

end;

Порядок виконання роботи

Завантажте систему візуального програмування Delphi.

Змініть заголовок форми “Оголошення про нараду” і збільшить розміри форми.

4. Змініть піктограму у лівому верхньому куті форми, задавши конкретний файл з рисунком піктограми як значення властивості Icon (піктограма) форми.

Назначте піктограму для значка програми (див. конспект лекцій).

6. Збережіть виконану на даний момент форму у своїй особистій папці (File=>Save All).

7. Розташуйте у формі компоненти:

8. 4 текстових поля (Label)<= Standard

Список (ListBox)- Standard

10. 1 RadioGroup з 2 компонентами RadioButton)<= Standard

11. 1 комбінований список(Combo-Box)<= Standard

12. 1 фігура (Shape)<=Additional

13. Змініть назви текстових полів та розмістіть їх на формі та інші компоненти як зображено на рис. 4.1 (4-е текстове поле має бути пустим, воно заповнюється програмно, встановити властивості Label4: AutoSize - false, розмір - на ширину форми, Caption - очистити, Font => Size = 10, Font => Style => [ fsBold, fsltalic ]).

Рис.2.1 Формування оголошення про нараду

Збережіть виконану на даний момент(Save all).

15. Для об’єкту ListBox1 через властивість Items =>[…]=> діалогове вікно „String List Editor” додайте текстові рядки з днями тижня: понеділок, вівторок, середу, четвер, п'ятницю через кл. Enter. А також ListBoxl: Font => Size = 10, Font => Style => fsltalic;

16. Для об’єкту ListBox2 через властивість Items =>[…]=> діалогове вікно „String List Editor” додайте текстові рядки з назвами кольорів:: зелений, синій, червоний, жовтий, салатовий.

Для об’єкта Shape1 властивість Shape1. Shape встановити stEllipse (з списку).

18. Для об’єкта ComboBox Встановити таті властивості: ComboBox1: Text - очистити, Font => Size = 10, Font => Style =>fsItalic; Властивість Items: натиснути на кнопку з трьома крапками і в String list editor набрати п'ять рядків: зранку, опівдні, по обіді, під час обідньої перерви, після закінчення роботи.

Збережіть виконану на даний момент(Save all) і запустіть на виконання (під час роботи на формі можна вибрати потрібні значення в кожному з трьох списків незалежно.).

20. Для зміни кольору еліпса при виборі відповідного елемента з списку ListBox2 необхідно визначити метод опрацювання OnClick

 

procedure TForml.ListBox2Click(Sender: TObject);

begin {змінюємо колір еліпса залежно від вибору в ListBox2}

case ListBox2.Itemlndex of

0: Shape1.Brush.Color:-clGreen;

1: Shapel.Brush.Color:=clBlue;

2: Shapel.Brush.Color:=clRed;

3: Shapel.Brush.Color:=clYellow;

4: Shapel.Brush. Color:=clLime;

end;

end;

 

Для зміни повідомлення у разі будь-якого вибору у верхніх двох списках (день, час – ListBox1, ComboBox1) та радіо кнопки необхідно визначити метод опрацювання події OnClick для ListBox1 та RadioButton1, а для ComboBox1 треба визначити метод опрацювання події OnChange, причому він є таким самим, як і OnClick для ListBox1. У цьому випадку можна вчинити так. В інспекторі об'єктів вибрати сторінку Events і в полі редактора імені методу для OnChange натиснути на кнопку списку імен процедур. Зі списку вибрати ListBox1.Click. Це означає, що подію OnChange буде опрацьовувати процедура ListBox1.Click. Для RadioButton1. OnClick та RadioButton2. OnClick виконайте такі ж дії.

procedure TForm1.ListBox1Click(Sender: TObject);

begin

if (ListBox1.ItemIndex>=0)

then {є виділений елемент) }

if RadioButton1.Checked then

Label4.Caption:='Чегова нарада в '+ListBox1.Items[ListBox1. ItemIndex]+' '+ComboBox1.Text;

else

Label4.Caption:='Позачергова нарада в '+ListBox1.Items[ListBox1. ItemIndex]+

' '+ComboBox1.Text;

{текст у ComboBox1 треба ввести до вибору дня}

end;

 



Поделиться:


Последнее изменение этой страницы: 2016-09-13; просмотров: 199; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.150.175 (0.007 с.)