Читайте также:
|
|
unit rdrec_;
Interface
Uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
Type
TForm1 = class(TForm)
RadioButton1: TRadioButton; // переключатель Все
RadioButton2: TRadioButton; // переключатель Выбрать
// текст Страна
Button1: TButton;
GroupBox1: TGroupBox;
Label1: TLabe1;
procedure Button1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
ComboBox1: TComboBox; // комбинированный список
// для ввода названия страны
Memol: TMemo; // поле вывода записей, удовлетворяющих
// условию запроса
private { Private declarations }
public { Public declarations }
end;
var Form1: TForm1;
Implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
Type
TKind = (GOLD,SILVER,BRONZE); { тип медали}
// запись файла
TMedal = record
country:string[20];
sport:string[20];
person: string [40];
kind:TKind;
end;
Var
f: file of TMedal; // файл записей
rec: TMedal; // запись, прочитанная из файла
n: integer; // кол-во записей, удовлетворяющих запросу
st: string[80];
Begin
AssignFile(f,'a:\medals.db');
{$I-}
Reset (f); // открыть файл для чтения
{$I+}
IfIOResult <>0 then begin
ShowMessage('Ошибка открытия файла БД.');
Exit; end;
// обработка БД
IfRadioButton2.Checked then
Memo1.Lines.Add('*** ' + ComboBox1.Text + ' ***');
n:= 0; Memo1.Clear; // очистить список поля Memo
While notEOF(f) do begin
read(f, rec); // прочитать запись
if RadioButton1.Checked or (rec.country = ComboBox1.Text)
Then begin
n:= n + 1;
st:= rec.person+ ', ' + rec.sport;
IfRadioButtonl.Checked then
st:= st + ', '+ rec.country;
case rec.kind of
GOLD: st:= st+ ', золото';
SILVER:st:= st+ ', серебро';
BRONZE:st:= st+ ', бронза';
end;
Memo1.Lines.Add(st); end;
end;
CloseFile(f);
if n = 0 then
ShowMessage('В БД нет запрашиваемой информации.');
end;
// переключатель Выбрать
procedure TForm1.RadioButton2Click(Sender: TObject);
Begin
Label1.Enabled:= True;
ComboBox1.Enabled:= True; // теперь поле Страна доступно
ComboBox1.SetFocus; // курсор в поле Страна
end;
// переключатель Все
procedure TForm1.RadioButton1Click(Sender: TObject);
Begin
Label1.Enabled:= False;
ComboBox1.Enabled:= False; // теперь поле Страна не доступно
end;
End.
Процедура TForm1.Button1Click открывает файл и последовательно считывает находящиеся в нем записи. Содержимое записи добавляется в поле Memo1, если прочитанная запись удовлетворяет условию запроса, т. е. содержимое поля country совпадает с названием страны, введенным пользователем в поле редактирования компонента ComboBox1, или если выбран переключатель RadioButton1.
Информация в поле Memo добавляется инструкцией Memo1.Lines.Add(st), которая является инструкцией применения метода Add (Добавить) к компоненту Memo1.
Дата добавления: 2015-02-16; просмотров: 82 | Поможем написать вашу работу | Нарушение авторских прав |