- •1.Текстовые компоненты Label, Edit, Memo. Кнопка Button
- •Пример 1.1. Задание - Составить программу, вычисляющую корни квадратного уравнения
- •2. Классы и компоненты Delphi,
- •Interface
- •Interface
- •Interface
- •3. Панель переключателей RadioGroup
- •Interface
- •4. Списки: ListBox и ComboBox
- •Interface
- •Interface
- •5. Таблица StringGrid
- •Полный текст модуля Unit1.Pas
- •Interface
- •6. Создание меню. Компоненты MainMenu и PopupMenu
- •Interface
- •Interface
- •7. Диалоговые окна.
- •Interface
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1 : TEdit;
ListBox1: TListBox;
ListBox2: TListBox;
Button1 : TButton;
Button2 : TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender : TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a: array[1..10] of integer;
i, min, max, imax, imin: integer;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add(Edit1.Text);
i := i+1;
a[i] := StrToInt(Edit1.Text);
Edit1.SetFocus
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
ListBox1.Clear;
ListBox2.Clear;
end;
procedure TForm1.Button2Click(Sender: TObject);
var k:integer;
begin
max := a[1];
imax := 1;
min := a[1];
imin := 1;
for k := 2 to 10 do
begin
if max < a[k] then
begin
max := a[k];
imax := k
end;
if min > a[k] then
begin
min := a[k];
imin := k
end;
end;
a[imax] := min;
a[imin] := max;
for k := 1 to 10 do
ListBox2.Items.Add(IntToStr(a[k]));
end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift : TShiftState);
begin
if key = 13 then Button1.SetFocus
end; end.
Пример 4.2
Выполним задание из Примера 4.1 с использованием компонента ComboBox.
Решение
Для нового проекта создадим новую папку, например D:\MyProject\CBOX.
Откроем новый проект.
Со страницы Standard поместим на Form1следующие компоненты: две кнопки Button и два компонента ComboBox.
Положим свойство DropDownCount для компонентов ComboBox1 и ComboBox2 равным 10. Дальнейшая последовательность действий аналогична приведенной в решении примера 4.1. Отличия, появляющиеся при написании обработчиков событий, становятся понятными при сравнении программного кода из предыдущего примера и программного кода, приведенного ниже.
Текст модуля Unit1.pas
unit Unit1;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1 : TButton;
Button2 : TButton;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate( Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
A : array[1..10] of integer;
i, min, max, imax, imin : integer;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1.Items.Add(ComboBox1.Text);
i := i+1;
a[i] := StrToInt(ComboBox1.Text);
ComboBox1.SetFocus;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
ComboBox1.Clear;
ComboBox2.Clear;
ComboBox1.TabOrder := 0;
end;
procedure TForm1.Button2Click(Sender: TObject);
var k:integer;
begin
max := a[1];
imax := 1;
min := a[1];
imin := 1;
for k := 2 to 10 do
begin
if max < a[k] then
begin
max := a[k];
imax := k
end;
if min > a[k] then
begin
min := a[k];
imin := k
end;
end;
a[imax] := min;
a[imin] := max;
for k := 1 to 10 do
ComboBox2.Items.Add(IntToStr(a[k]));
ComboBox2.DroppedDown := true;
end;
procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then Button1.SetFocus
end;
end.