Пишем программу для создания книг FB2. - Юрий Карпов
Шрифт:
Интервал:
Закладка:
Caption = 'email'
end
object Label8: TLabel
Left = 8
Top = 56
Width = 47
Height = 13
Caption = 'midl-name'
end
object first_name: TEdit
Left = 64
Top = 16
Width = 113
Height = 21
TabOrder = 0
end
object last_name: TEdit
Left = 64
Top = 80
Width = 113
Height = 21
TabOrder = 1
end
object nickname: TEdit
Left = 64
Top = 112
Width = 113
Height = 21
TabOrder = 2
end
object mail: TEdit
Left = 64
Top = 144
Width = 113
Height = 21
TabOrder = 3
end
object mid_name: TEdit
Left = 64
Top = 48
Width = 113
Height = 21
TabOrder = 4
end
end
object Au: TGroupBox
Left = 8
Top = 8
Width = 185
Height = 193
Caption = 'Authors'
TabOrder = 1
object ListBox1: TListBox
Left = 8
Top = 15
Width = 169
Height = 170
ItemHeight = 13
TabOrder = 0
OnClick = ListBox1Click
end
end
object Button1: TButton
Left = 208
Top = 16
Width = 75
Height = 25
Caption = 'new'
TabOrder = 2
OnClick = Button1Click
end
object Button2: TButton
Left = 208
Top = 56
Width = 75
Height = 25
Caption = 'Add'
TabOrder = 3
OnClick = Button2Click
end
object Button3: TButton
Left = 208
Top = 96
Width = 75
Height = 25
Caption = 'Edit'
TabOrder = 4
OnClick = Button3Click
end
object Button4: TButton
Left = 208
Top = 136
Width = 75
Height = 25
Caption = 'Delete'
TabOrder = 5
OnClick = Button4Click
end
object BitBtn1: TBitBtn
Left = 96
Top = 224
Width = 75
Height = 25
TabOrder = 6
Kind = bkOK
end
object BitBtn2: TBitBtn
Left = 328
Top = 224
Width = 75
Height = 25
TabOrder = 7
Kind = bkCancel
end
end
// конец кода
authors.pas
// начало кода
unit authors;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
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', 'Детская проза'),
('child_sf', 'Детская фантастика'),
('child_det', 'Детские остросюжетные'),
('child_adv', 'Детские приключения'),
('child_verse', 'Детские стихи'),
('child_tale', 'Сказка'),
// Документальная литература
('nonf_biography', 'Биографии и Мемуары'),
('nonfiction', 'Документальная литература'),
('design', 'Искусство и Дизайн'),
('nonf_criticism', 'Критика'),
('music', 'Музыка'),
('nonf_publicism', 'Публицистика'),
//Домоводство
('home_pets', 'Домашние животные'),
('home', 'Домоводство'),
('home_health', 'Здоровье'),
('home_cooking', 'Кулинария'),
('home_entertain', 'Развлечения'),
('home_garden', 'Сад и огород'),
('home_diy', 'Сделай сам'),
('home_sport', 'Спорт'),
('home_crafts', 'Хобби и ремесла'),
('home_sex', 'Эротика, Секс'),
// Компьютеры и Интернет
('comp_db', 'Базы данных'),
('comp_www', 'Интернет'),
('comp_hard', 'Компьютерное "железо"'),
('computers', 'Околокомпьютерная литература'),
('comp_osnet', 'ОС и Сети'),
('comp_programming', 'Программирование'),
('comp_soft', 'Программы'),
('comp_dsp', 'Цифровая обработка сигналов'),
// Любовные романы
('love_history', 'Исторические любовные романы'),
('love_short', 'Короткие любовные романы'),
('love_sf', 'Любовно-фантастические романы'),
('love', 'О любви'),
('love_detective', 'Остросюжетные любовные романы'),
('love_contemporary', 'Современные любовные романы'),
('love_erotica', 'Эротика'),
// Наука, Образование
('sci_medicine_alternative', 'Альтернативная медицина'),
('sci_cosmos', 'Астрономия и Космос'),
('sci_biology', 'Биология'),
('sci_biophys', 'Биофизика'),
('sci_biochem', 'Биохимия'),
('sci_geo', 'Геология и география'),
('sci_state', 'Государство и право'),
('sci_business', 'Деловая литература'),
('sci_history', 'История'),
('sci_culture', 'Культурология'),
('sci_philology', 'Литературоведение'),
('sci_math', 'Математика'),
('sci_medicine', 'Медицина'),
('science', 'Научная литература'),
('sci_orgchem', 'Органическая химия'),
('sci_politics', 'Политика'),
('sci_psychology', 'Психология'),
('sci_religion', 'Религиоведение'),
('sci_tech', 'Технические науки'),
('sci_phys', 'Физика'),
('sci_physchem', 'Физическая химия'),
('sci_philosophy', 'Философия'),
('sci_chem', 'Химия'),
('sci_economy', 'Экономика'),
('sci_juris', 'Юриспруденция'),
('sci_linguistic', 'Языкознание'),
// Периодика
('periodic', 'Журналы'),
//Поэзия, Драматургия
('dramaturgy', 'Драматургия'),
('poetry', 'Поэзия'),
// Приключения
('adv_western', 'Вестерн'),
('adv_history', 'Исторические приключения'),
('adv_maritime', 'Морские приключения'),
('adventure', 'Приключения'),
('adv_indian', 'Приключения про индейцев'),
('adv_animal', 'Природа и животные'),
('adv_geo', 'Путешествия и география'),
// Проза
('prose_history', 'Историческая проза'),
('prose_classic', 'Классическая проза'),
('prose_counter', 'Контркультура'),
('prose_military', 'О войне'),
('prose', 'Проза'),
('prose_rus_classic', 'Русская классическая проза'),
('prose_su_classics', 'Советская классическая проза'),
('prose_contemporary', 'Современная проза'),
// Прочее
('other', 'Неотсортированное'),
('notes', 'Партитуры'),
//Религия и духовность
('religion_budda', 'Буддизм'),
('religion', 'Религиозная литература'),
('religion_rel', 'Религия'),
('religion_self', 'Самосовершенствование'),
('religion_esoterics', 'Эзотерика'),
//Справочная литература
('geo_guides', 'Путеводители'),
('ref_guide', 'Руководства'),
('ref_dict', 'Словари'),
('reference', 'Справочная литература'),
('ref_ref', 'Справочники'),
('ref_encyc', 'Энциклопедии'),
//Старинное