Пишем программу для создания книг FB2
Шрифт:
type
TPerson = class
fName: string;
mName: string;
lName: string;
nick: string;
email: string;
constructor Create;
end;
TForm2 = class(TForm)
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
first_name: TEdit;
last_name: TEdit;
nickname: TEdit;
mail: TEdit;
mid_name: TEdit;
Au: TGroupBox;
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
constructor TPerson.Create;
begin
fName:= '';
mName:= '';
lName:= '';
nick:= '';
email:= '';
end;
procedure TForm2.Button1Click(Sender: TObject);
begin // New
first_name.Text:= '';
mid_name.Text:= '';
last_name.Text:= '';
nickname.Text:= '';
mail.Text:= '';
end;
procedure TForm2.Button2Click(Sender: TObject);
var
Person: TPerson;
begin // Add
Person:= TPerson.Create;
with Person do
begin
fName:= first_name.Text;
mName:= mid_name.Text;
lName:= last_name.Text;
nick:= nickname.Text;
email:= mail.Text;
ListBox1.Items.AddObject(lName+' '+fName,Person);
end;
end;
procedure TForm2.ListBox1Click(Sender: TObject);
var
Person: TPerson;
begin
with ListBox1 do
Person:= TPerson(Items.Objects[ItemIndex]);
with Person do
begin
first_name.Text:= fName;
mid_name.Text:= mName;
last_name.Text:= lName;
nickname.Text:= nick;
mail.Text:= email;
end;
end;
procedure TForm2.Button3Click(Sender: TObject);
var
Person: TPerson;
begin // Edit
with ListBox1 do
begin
if ItemIndex = - 1 then exit;
Person:= TPerson(Items.Objects[ItemIndex]);
end;
with Person do
begin
fName:= first_name.Text;
mName:= mid_name.Text;
lName:= last_name.Text;
nick:= nickname.Text;
email:= mail.Text;
with ListBox1 do
Items[ItemIndex]:=lName+' '+fName;
end;
end;
procedure TForm2.Button4Click(Sender: TObject);
var
Person: TPerson;
begin // Delete
with ListBox1 do
begin
if ItemIndex = - 1 then exit;
Person:= TPerson(Items.Objects[ItemIndex]);
Person.Free;
Items.Delete(ItemIndex);
end;
end;
end.
//
dm.pas
Это просто текстовый файл, без формы.
// начало кода
unit dm;
interface
type
gr = array[1..2] of string;
const
maxg = 151;
gg: array[0..maxg] of gr = (// Список жанров
// Деловая литература
('banking', 'Банковское дело'),
('accounting', 'Бухучет, налогообложение, аудит'),
('global_economy', 'Внешнеэкономическая деятельность'),
('paper_work', 'Делопроизводство'),
('org_behavior', 'Корпоративная культура'),
('personal_finance', 'Личные финансы'),
('small_business', 'Малый бизнес'),
('marketing', 'Маркетинг, PR, реклама'),
('real_estate', 'Недвижимость'),
('popular_business', 'О бизнесе популярно'),
('industries', 'Отраслевые издания'),
('job_hunting', 'Поиск работы, карьера'),
('economics_ref', 'Справочники'),
('management', 'Управление, подбор персонала'),
('stock', 'Ценные бумаги, инвестиции'),
('economics', 'Экономика'),
// Детективы и Триллеры
('det_action', 'Боевик'),
('detective', 'Детектив'),
('det_irony', 'Иронический детектив'),
('det_history', 'Исторический детектив'),
('det_classic', 'Классический детектив'),
('det_crime', 'Криминальный детектив'),
('det_hard', 'Крутой детектив'),
('det_maniac', 'Маньяки'),
('det_political', 'Политический детектив'),
('det_police', 'Полицейский детектив'),
('thriller', 'Триллер'),
('det_espionage', 'Шпионский детектив'),
// Детское
('children', 'Детская литература'),
('child_education', 'Детская образовательная литература'),
('child_prose', 'Детская проза'),