Юрий Карпов - Пишем программу для создания книг FB2.. Страница 7

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', 'Энциклопедии'),

//Старинное