☰ Mundarija · Informatika

ListBox, ComboBox va SpinEdit

Darslar 55–56 · 2 ta dars · N. I. Taylaqov (umumiy muharrir), A. B. Axmedov, M. D. Pardayeva, A. A. Abdug‘aniyev, U. M. Mirsanov. Informatika va axborot texnologiyalari, 10-sinf, 1-nashr. «Extremum-Press», Toshkent, 2017
55

ListBox va ComboBox obyektlari

Darslik: 121–126-betlar
MaqsadListBox, ComboBox va SpinEdit obyektlarini ishlatadi, ro‘yxatni Items.Add bilan to‘ldiradi, tanlangan bandni ItemIndex va Items[i] bilan oladi, SpinEdit ning Value, MinValue, MaxValue xossalarini o‘rnatadi.
Yangi so‘zlar
ListBox · ListBox: a box that shows a list of items, one or more of which can be chosenComboBox · ComboBox: an input field with a drop-down listSpinEdit · SpinEdit: an input field for whole numbers with up and down arrowsItems.Add · Items.Add: a method that adds a new line at the end of a list
Tushuntirish

RadioGroup variantlar ko‘p bo‘lsa, ekranda ko‘p joy egallaydi. ListBox (Standard yorlig‘i) uzun ro‘yxatni ko‘rsatadi va sig‘masa, aylantirish chizig‘i chiqaradi; ComboBox esa Edit kabi kam joy oladi: o‘ng tomondagi uchburchakni bosganda yashirin ro‘yxat ochiladi. Ikkalasida ham bandlar Items xossasida saqlanadi, tanlangan band raqami ItemIndex da (0 dan boshlanadi, tanlanmagan bo‘lsa –1), uning matni esa ListBox1.Items[i] ko‘rinishida olinadi. Kodda ro‘yxatni to‘ldirish uchun ListBox1.Items.Add('Olma'); ishlatiladi, bandlar soni Items.Count da. SpinEdit butun sonni kiritish uchun mo‘ljallangan: son Value xossasida butun son turida saqlanadi, shuning uchun uni StrToInt ga o‘tkazish shart emas; eng kichik va eng katta qiymatlar MinValue va MaxValue da, o‘zgarish qadami Increment da. Delphi 7 da SpinEdit Samples yorlig‘ida turadi, boshqa muhitlarda (masalan, Lazarus) u boshqa yorliqda bo‘lishi mumkin.

Namunalar
«Mevalar»: ListBox1 – Olma, Nok, Uzum, Anor (narx 1 kg: 12000, 15000, 20000, 25000 so‘m); SpinEdit1 – kg (MinValue = 1, MaxValue = 10, Value = 1); ListBox2 – buyurtma. global: var p: array[0..3] of Integer; total: Integer; procedure TForm1.Button1Click(Sender: TObject); ⏎ var i: Integer; ⏎ begin ⏎  i := ListBox1.ItemIndex; ⏎  if i >= 0 then ⏎  begin ⏎    ListBox2.Items.Add(ListBox1.Items[i] + ' x ' + IntToStr(SpinEdit1.Value)); ⏎    total := total + p[i] * SpinEdit1.Value; ⏎    Label1.Caption := 'Jami: ' + IntToStr(total); ⏎  end; ⏎ end;
Narxlar p[0] := 12000; p[1] := 15000; p[2] := 20000; p[3] := 25000; va total := 0; OnCreate da yoziladi. Olma 3 kg (3·12000 = 36000), keyin Uzum 2 kg (2·20000 = 40000): ListBox2 da ikkita qator, Jami: 76000. Uchinchi band ListBox1.Items[2] = Uzum, chunki sanash 0 dan.
Sinfda faoliyat

«Mevali do‘kon»: juftlik ilovani to‘ldiradi: yangi meva va narx qo‘shadi, 3 ta buyurtma uchun jamini oldindan hisoblab, ilovadagi natija bilan solishtiradi.

Mashq
1
ListBox da tanlangan band raqami qaysi xossada?
2
ListBox1.Items.Add('Anor') ni ro‘yxatda 4 ta band bor holda bajarsak, bandlar soni?
3
Nok 15000 so‘m/kg. 4 kg Nok va 2 kg Anor (25000) uchun jami?
4
Nima uchun SpinEdit.Value uchun StrToInt kerak emas?