Введение в технологию программирования. Ч.1. Среда объектно-ориентированного программирования Delphi. Коржов Е.Н - 20 стр.

UptoLike

Составители: 

20
TListBoxɫɬɚɧɞɚɪɬɧɵɣ ɫɩɢɫɨɤ ɜɵɛɨɪɚ, ɫ ɩɨɦɨɳɶɸ ɤɨɬɨɪɨɝɨ ɩɨɥɶ-
ɡɨɜɚɬɟɥɶ ɦɨɠɟɬ ɜɵɛɪɚɬɶ ɨɞɢɧ ɢɥɢ ɧɟɫɤɨɥɶɤɨ ɷɥɟɦɟɧɬɨɜ ɜɵɛɨɪɚ.
TComboBoxɤɨɦɛɢɧɢɪɨɜɚɧɧɵɣ ɫɩɢɫɨɤ ɜɵɛɨɪɚ, ɩɪɟɞɫɬɚɜɥɹɸɳɢɣ
ɫɨɛɨɣ ɤɨɦɛɢɧɚɰɢɸ ɫɩɢɫɤɚ TListBox ɢ ɪɟɞɚɤɬɨɪɚ TEdit.
TScrollBarɩɨɥɨɫɚ ɩɪɨɤɪɭɬɤɢ, ɢɫɩɨɥɶɡɭɸɳɚɹɫɹ ɞɥɹ ɜɢɡɭɚɥɶɧɨɝɨ
ɭɩɪɚɜɥɟɧɢɹ ɡɧɚɱɟɧɢɟɦ ɱɢɫɥɨɜɨɣ ɜɟɥɢɱɢɧɵ.
TGroupBoxɩɪɹɦɨɭɝɨɥɶɧɨɟ ɨɤɧɨ ɫ ɪɚɦɤɨɣ ɢ ɬɟɤɫɬɨɦ ɜ ɪɚɡɪɵɜɟ
ɪɚɦɤɢ. ɋɥɭɠɢɬ ɤɨɧɬɟɣɧɟɪɨɦ ɞɥɹ ɪɚɡɦɟɳɟɧɢɹ ɞɨɱɟɪɧɢɯ ɤɨɦɩɨɧɟɧɬɨɜ.
TRadioGroupɫɩɟɰɢɚɥɶɧɵɣ ɤɨɧɬɟɣɧɟɪ, ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɣ ɞɥɹ ɪɚɡ-
ɦɟɳɟɧɢɹ ɡɚɜɢɫɢɦɵɯ ɩɟɪɟɤɥɸɱɚɬɟɥɟɣ.
TPanelɤɨɧɬɟɣɧɟɪ ɨɛɳɟɝɨ ɧɚɡɧɚɱɟɧɢɹ.
1.1. ɉɨɞɝɨɬɨɜɢɬɟɥɶɧɵɟ ɞɟɣɫɬɜɢɹ
1. ɍɞɚɥɢɬɟ ɤɧɨɩɤɭ Button1ɫ ɩɚɧɟɥɢ Panel2. ɍɞɚɥɢɬɟ ɨɩɢɫɚɧɢɟ ɩɟɪɟ-
ɦɟɧɧɵɯ x,y ɜ ɪɚɡɞɟɥɟ ɨɩɢɫɚɧɢɹ ɩɟɪɟɦɟɧɧɵɯ var.
1.2. ɋɩɢɫɨɤ ɜɵɛɨɪɚ ListBox1
1. ɍɫɬɚɧɨɜɢɬɟ ɧɚ ɮɨɪɦɭ ɤɨɦɩɨɧɟɧɬ ListBox1 (ɫɦ. ɪɢɫ. 3.1.2).
2. ɋɜɨɣɫɬɜɭ Items ɡɚɞɚɣɬɟ ɫɥɟɞɭɸɳɢɟ ɡɧɚɱɟɧɢɹ: Ɏɭɧɬ, ɉɭɞ, ɍɧɰɢɹ,
Ⱦɪɚɯɦ, Ƚɪɚɧ. ɋɜɨɣɫɬɜɨ Items (ɤɥɚɫɫ TString) ɯɪɚɧɢɬ ɫɬɪɨɤɢ ɫɩɢ-
ɫɤɚ.
3. ɋɚɦɨɫɬɨɹɬɟɥɶɧɨ ɢɡɦɟɧɢɬɟ
ɪɚɡɦɟɪ ɢ ɰɜɟɬ ɲɪɢɮɬɚ ɞɥɹ ɤɨɦɩɨɧɟɧɬɚ
ListBox1.
4. ɋɨɡɞɚɣɬɟ ɨɛɪɚɛɨɬɱɢɤ ɫɨɛɵɬɢɹ OnClick ɞɥɹ ɤɨɦɩɨɧɟɧɬɚ ListBox1.
ɋɨɛɵɬɢɟ OnClick ɩɪɨɢɫɯɨɞɢɬ ɩɪɢ ɜɵɛɨɪɟ ɷɥɟɦɟɧɬɚ ɜ ɫɩɢɫɤɟ.
Ɉɛɪɚɛɨɬɱɢɤ ɫɨɛɵɬɢɹ. ɋɜɨɣɫɬɜɨ ItemIndex ɨɩɪɟɞɟɥɹɟɬ ɧɨɦɟɪ ɜɵ-
ɛɪɚɧɧɨɝɨ ɷɥɟɦɟɧɬɚ ɫɩɢɫɤɚ. Ɇɟɬɨɞ Clear ɨɱɢɳɚɟɬ ɫɨɞɟɪɠɢɦɨɟ ɤɨɦɩɨɧɟɧɬɚ
Tȿdit. Ɇɟɬɨɞ SetFocus ɭɫɬɚɧɚɜɥɢɜɚɟɬ ɤɭɪɫɨɪ ɜ ɷɬɨɬ ɤɨɦɩɨɧɟɧɬ.
procedure TForm1.ListBox1Click(Sender: TObject);
begin {ȿɫɥɢ ɜ ɩɨɥɟ ɪɟɞɚɤɬɨɪɚ ɧɟ ɜɜɟɞɟɧɚ ɢɧɮɨɪɦɚɰɢɹ, ɬɨ ɪɚɫɱɟɬɚ ɧɟ
ɩɪɨɢɡɜɨɞɢɬɶ}
if (Edit1.Text = '') then Exit;
x := StrToFloat(Edit1.Text);
Case ListBox1.ItemIndex of {ȼ ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ ɜɵɛɪɚɧɧɨɝɨ ɷɥɟɦɟɧɬɚ
ɫɩɢɫɤɚ}
0: y := x/400; {ɪɚɫɱɟɬ ɩɪɨɢɡɜɨɞɢɬɶ ɩɨ ɪɚɡɧɵɦ ɮɨɪɦɭ-
ɥɚɦ}
1: y := x/16380;
2: y := x/28.35;
3: y := x/28.35*16;
4: y := 437.5*x/28.35;
End;
      TListBox – ɫɬɚɧɞɚɪɬɧɵɣ ɫɩɢɫɨɤ ɜɵɛɨɪɚ, ɫ ɩɨɦɨɳɶɸ ɤɨɬɨɪɨɝɨ ɩɨɥɶ-
ɡɨɜɚɬɟɥɶ ɦɨɠɟɬ ɜɵɛɪɚɬɶ ɨɞɢɧ ɢɥɢ ɧɟɫɤɨɥɶɤɨ ɷɥɟɦɟɧɬɨɜ ɜɵɛɨɪɚ.
      TComboBox – ɤɨɦɛɢɧɢɪɨɜɚɧɧɵɣ ɫɩɢɫɨɤ ɜɵɛɨɪɚ, ɩɪɟɞɫɬɚɜɥɹɸɳɢɣ
ɫɨɛɨɣ ɤɨɦɛɢɧɚɰɢɸ ɫɩɢɫɤɚ TListBox ɢ ɪɟɞɚɤɬɨɪɚ TEdit.
      TScrollBar – ɩɨɥɨɫɚ ɩɪɨɤɪɭɬɤɢ, ɢɫɩɨɥɶɡɭɸɳɚɹɫɹ ɞɥɹ ɜɢɡɭɚɥɶɧɨɝɨ
ɭɩɪɚɜɥɟɧɢɹ ɡɧɚɱɟɧɢɟɦ ɱɢɫɥɨɜɨɣ ɜɟɥɢɱɢɧɵ.
      TGroupBox – ɩɪɹɦɨɭɝɨɥɶɧɨɟ ɨɤɧɨ ɫ ɪɚɦɤɨɣ ɢ ɬɟɤɫɬɨɦ ɜ ɪɚɡɪɵɜɟ
ɪɚɦɤɢ. ɋɥɭɠɢɬ ɤɨɧɬɟɣɧɟɪɨɦ ɞɥɹ ɪɚɡɦɟɳɟɧɢɹ ɞɨɱɟɪɧɢɯ ɤɨɦɩɨɧɟɧɬɨɜ.
      TRadioGroup – ɫɩɟɰɢɚɥɶɧɵɣ ɤɨɧɬɟɣɧɟɪ, ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɣ ɞɥɹ ɪɚɡ-
ɦɟɳɟɧɢɹ ɡɚɜɢɫɢɦɵɯ ɩɟɪɟɤɥɸɱɚɬɟɥɟɣ.
      TPanel – ɤɨɧɬɟɣɧɟɪ ɨɛɳɟɝɨ ɧɚɡɧɚɱɟɧɢɹ.
    1.1.   ɉɨɞɝɨɬɨɜɢɬɟɥɶɧɵɟ ɞɟɣɫɬɜɢɹ
    1. ɍɞɚɥɢɬɟ ɤɧɨɩɤɭ Button1ɫ ɩɚɧɟɥɢ Panel2. ɍɞɚɥɢɬɟ ɨɩɢɫɚɧɢɟ ɩɟɪɟ-
ɦɟɧɧɵɯ x,y ɜ ɪɚɡɞɟɥɟ ɨɩɢɫɚɧɢɹ ɩɟɪɟɦɟɧɧɵɯ var.
    1.2.   ɋɩɢɫɨɤ ɜɵɛɨɪɚ ListBox1
    1. ɍɫɬɚɧɨɜɢɬɟ ɧɚ ɮɨɪɦɭ ɤɨɦɩɨɧɟɧɬ ListBox1 (ɫɦ. ɪɢɫ. 3.1.2).
    2. ɋɜɨɣɫɬɜɭ Items ɡɚɞɚɣɬɟ ɫɥɟɞɭɸɳɢɟ ɡɧɚɱɟɧɢɹ: Ɏɭɧɬ, ɉɭɞ, ɍɧɰɢɹ,
       Ⱦɪɚɯɦ, Ƚɪɚɧ. ɋɜɨɣɫɬɜɨ Items (ɤɥɚɫɫ TString) ɯɪɚɧɢɬ ɫɬɪɨɤɢ ɫɩɢ-
       ɫɤɚ.
    3. ɋɚɦɨɫɬɨɹɬɟɥɶɧɨ ɢɡɦɟɧɢɬɟ ɪɚɡɦɟɪ ɢ ɰɜɟɬ ɲɪɢɮɬɚ ɞɥɹ ɤɨɦɩɨɧɟɧɬɚ
ListBox1.
   4. ɋɨɡɞɚɣɬɟ ɨɛɪɚɛɨɬɱɢɤ ɫɨɛɵɬɢɹ OnClick ɞɥɹ ɤɨɦɩɨɧɟɧɬɚ ListBox1.
ɋɨɛɵɬɢɟ OnClick ɩɪɨɢɫɯɨɞɢɬ ɩɪɢ ɜɵɛɨɪɟ ɷɥɟɦɟɧɬɚ ɜ ɫɩɢɫɤɟ.
    Ɉɛɪɚɛɨɬɱɢɤ ɫɨɛɵɬɢɹ. ɋɜɨɣɫɬɜɨ ItemIndex ɨɩɪɟɞɟɥɹɟɬ ɧɨɦɟɪ ɜɵ-
ɛɪɚɧɧɨɝɨ ɷɥɟɦɟɧɬɚ ɫɩɢɫɤɚ. Ɇɟɬɨɞ Clear ɨɱɢɳɚɟɬ ɫɨɞɟɪɠɢɦɨɟ ɤɨɦɩɨɧɟɧɬɚ
Tȿdit. Ɇɟɬɨɞ SetFocus ɭɫɬɚɧɚɜɥɢɜɚɟɬ ɤɭɪɫɨɪ ɜ ɷɬɨɬ ɤɨɦɩɨɧɟɧɬ.
    procedure TForm1.ListBox1Click(Sender: TObject);
    begin {ȿɫɥɢ ɜ ɩɨɥɟ ɪɟɞɚɤɬɨɪɚ ɧɟ ɜɜɟɞɟɧɚ ɢɧɮɨɪɦɚɰɢɹ, ɬɨ ɪɚɫɱɟɬɚ ɧɟ
            ɩɪɨɢɡɜɨɞɢɬɶ}
      if (Edit1.Text = '') then Exit;
      x := StrToFloat(Edit1.Text);
      Case ListBox1.ItemIndex of {ȼ ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ ɜɵɛɪɚɧɧɨɝɨ ɷɥɟɦɟɧɬɚ
                                      ɫɩɢɫɤɚ}
           0: y := x/400;          {ɪɚɫɱɟɬ ɩɪɨɢɡɜɨɞɢɬɶ ɩɨ ɪɚɡɧɵɦ ɮɨɪɦɭ-
     ɥɚɦ}
           1: y := x/16380;
           2: y := x/28.35;
           3: y := x/28.35*16;
           4: y := 437.5*x/28.35;
      End;
                                      20