Смекни!
smekni.com

База данных DVD–фильмов (стр. 3 из 4)

2. Владимир Гофман, Анатолий Хамоненко, «Delphi быстрый старт», Санкт Петербург «БХВ-Петербург» 2003 год, 280 стр.

3. Евгений Марков, Петр Дарахвелидзе, «Программирование в Delphi 7», Санкт Петербург «БХВ-Петербург» 2003 год, 780 стр.

4. Поган А.М., Царенко Ю.А., “Программирование в Delphi”, Москва «ЭКСМО» 2006 год, 309 стр.

5. Бобровский А. , “Delphi 5. Учебный курс.” , Санкт – Петербург, Москва, Харьков, Минск, «ЗАО Питербук» , 2004 год, 639 стр.


Приложение 1

Листинг программы и её модулей

program Kursovik;

uses

Forms,

kurs in 'kurs.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Input in 'Input.pas' {Form3},

search in 'search.pas' {Form4};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.CreateForm(TForm4, Form4);

Application.Run;

end.

Модуль kurs.pas

unit kursovik;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus, jpeg, ExtCtrls, Grids, DBGrids, ShellAPI, XPMan;

const

derect='savedvd\';

type disk=record

name:string[50];

stoim:integer;

year:integer;

reg:string[30];

cincom:string[30];

end;

tdvd=array[1..300] of disk;

recordfile=file of disk;

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

N21: TMenuItem;

StringGrid1: TStringGrid;

ComboBox3: TComboBox;

Edit9: TEdit;

PopupMenu1: TPopupMenu;

N2: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

reg1: TMenuItem;

cincom1: TMenuItem;

N13: TMenuItem;

N22: TMenuItem;

N23: TMenuItem;

N24: TMenuItem;

XPManifest1: TXPManifest;

N26: TMenuItem;

Label8: TLabel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

N25: TMenuItem;

procedure N8Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

Procedure deletef(horizon:integer);

procedure editzap;

procedure clearlist;

procedure vivod (dvdfile:string);

procedure sort_1(dvdfile:string);

procedure sort_2(dvdfile: string);

procedure sort_3(dvdfile: string);

procedure sort_4(dvdfile: string);

procedure sort_5(dvdfile: string);

procedure N7Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure reg1Click(Sender: TObject);

procedure cincom1Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure N23Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure StringGrid1SelectCell(Sender: TObject; ACol,

ARow: Integer; var CanSelect: Boolean);

procedure N26Click(Sender: TObject);

procedure Edit9Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure N25Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

public

n,m,k:integer;

f,g:recordfile;

but:integer;

h:HWND;

horizon : integer;

end;

var

Form1: TForm1;

implementation

uses unit2, Input, search;

{$R *.dfm}

procedure tform1.clearlist;

begin

n:=0;

while n<stringgrid1.rowcount do

begin

StringGrid1.Cells[0,n+1]:='';

StringGrid1.Cells[1,n+1]:='';

StringGrid1.Cells[2,n+1]:='';

StringGrid1.Cells[3,n+1]:='';

StringGrid1.Cells[4,n+1]:='';

StringGrid1.Cells[5,n+1]:='';

n:=n+1;

end;

stringgrid1.RowCount:=2;

end;

procedure tform1.vivod (dvdfile:string);

var s:disk;

count:integer;

f1:recordfile;

begin

assignfile(f,dvdfile);{$I-}

reset(f); {$I+}

N:=0;

count:=0;

If IOResult=0 then

begin

while not eof(f) do

begin

count:=count+1;

read(f,s);

StringGrid1.cols[0][N+1]:=inttostr(count);

StringGrid1.Cells[1,N+1]:=s.name;

StringGrid1.Cells[2,N+1]:=inttostr(s.stoim)+' руб.';

StringGrid1.Cells[3,N+1]:=intToStr(s.year)+' год';

StringGrid1.Cells[4,N+1]:=s.reg;

StringGrid1.Cells[5,N+1]:=s.cincom;

N:=N+1;

end;

seek(f,0);

closefile(f);

if count=0 then

clearlist

else

stringgrid1.rowcount:=N+1;

end

else

begin

createdir('savedvd&bsol;');

assignfile(f1,derect+'db_ disk.db');

rewrite(f1);

closefile(f1);

end;

end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,

ARow: Integer; var CanSelect: Boolean);

begin

horizon:=ARow;

end;

{Удаление записи}

Procedure tform1.deletef(horizon:integer);

var

f1:recordfile;

el:tdvd;

begin

but:=MessageBox(0,'Удалить данные?','Внимание!',MB_YESNO or MB_ICONquestion);

if but=IDYES then

begin

assignfile(f1,derect+'new.db');

rewrite(f1);

assignfile(f,derect+'db_ disk.db');

reset(f);

n:=1;

while not eof(f) do

begin

read(f,el[n]);

if n <> horizon then

write(f1,el[n]);

n:=n+1;

end;

closefile(f);

closefile(f1);

erase(f);

rename(f1,derect+'db_ disk.db');

vivod(derect+'db_disk.db');

end;

end;

procedure tform1.sort_1(dvdfile: string);

var

f,q:file of disk;

c,i,n:integer;

buf:disk;

el:tdvd;

begin

assignfile(q,derect+'db.db');

rewrite(q);

assignfile(f,dvdfile);

reset(f);

c:=0;

while not eof(f)do

begin

c:=c+1;

read(f,el[c]);

end;

for i:=1 to c do

for n:=i+1 to c do

if el[n].name<el[i].name then

begin

buf:=el[n];

el[n]:=el[i];

el[i]:=buf;

end;

for i:=1 to c do

begin

write(q,el[i]);

end;

closefile(f);

closefile(q);

vivod(derect+'db.db');

erase(q);

end;

procedure tform1.sort_2(dvdfile: string);

var

f,q:file of disk;

c,i,n:integer;

buf:disk;

el:tdvd;

begin

assignfile(q,derect+'db.db');

rewrite(q);

assignfile(f,dvdfile);

reset(f);

c:=0;

while not eof(f)do

begin

c:=c+1;

read(f,el[c]);

end;

for i:=1 to c do

for n:=i+1 to c do

if el[n].stoim<el[i].stoim then

begin

buf:=el[n];

el[n]:=el[i];

el[i]:=buf;

end;

for i:=1 to c do

begin

write(q,el[i]);

end;

closefile(f);

closefile(q);

vivod(derect+'db.db');

erase(q);

end;

procedure tform1.sort_3(dvdfile: string);

var

f,q:file of disk;

c,i,n:integer;

buf:disk;

el:tdvd;

begin

assignfile(q,derect+'db.db');

rewrite(q);

assignfile(f,dvdfile);

reset(f);

c:=0;

while not eof(f)do

begin

c:=c+1;

read(f,el[c]);

end;

for i:=1 to c do

for n:=i+1 to c do

if el[n].year<el[i].year then

begin

buf:=el[n];

el[n]:=el[i];

el[i]:=buf;

end;

for i:=1 to c do

begin

write(q,el[i]);

end;

closefile(f);

closefile(q);

vivod(derect+'db.db');

erase(q);

end;

procedure tform1.sort_4(dvdfile: string);

var

f,q:file of disk;

c,i,n:integer;

buf:disk;

el:tdvd;

begin

assignfile(q,derect+'db.db');

rewrite(q);

assignfile(f,dvdfile);

reset(f);

c:=0;

while not eof(f)do

begin

c:=c+1;

read(f,el[c]);

end;

for i:=1 to c do

for n:=i+1 to c do

if el[n].reg<el[i].reg then

begin

buf:=el[n];

el[n]:=el[i];

el[i]:=buf;

end;

for i:=1 to c do

begin

write(q,el[i]);

end;

closefile(f);

closefile(q);

vivod(derect+'db.db');

erase(q);

end;

procedure tform1.sort_5(dvdfile: string);

var

f,q:file of disk;

c,i,n:integer;

buf:disk;

el:tdvd;

begin

assignfile(q,derect+'db.db');

rewrite(q);

assignfile(f,dvdfile);

reset(f);

c:=0;

while not eof(f)do

begin

c:=c+1;

read(f,el[c]);

end;

for i:=1 to c do

for n:=i+1 to c do

if el[n].cincom<el[i].cincom then

begin

buf:=el[n];

el[n]:=el[i];

el[i]:=buf;

end;

for i:=1 to c do

begin

write(q,el[i]);

end;

closefile(f);

closefile(q);

vivod(derect+'db.db');

erase(q);

end;

{Редактирование}

procedure Tform1.editzap;

var

q:disk;

new:string;

begin

n:=0;

assignfile(f,derect+'db_ disk.db');

reset(f);

try

new:=Edit9.text;

seek(f,horizon-1);

read(f,q);

case comboBox3.ItemIndex of

0:q.name:=new;

1:try q.stoim:=strtoint(new);

except

MessageBox(0,'Цена указывается в цифрах!','',MB_OK or MB_ICONWARNING)

end;

2:try q.year:=strtoint(new);

except

MessageBox(0,'Год выпуска указывается в цифрах!','',MB_OK or MB_ICONWARNING)

end;

3:q.reg:=new;

4:q.cincom:=new;

end;

begin

seek(f,horizon-1);

write(f,q);

closefile(f);

end;

except

MessageBox(0,'Выбирите строку из списка.','',MB_OK or MB_ICONWARNING)

end;

edit9.clear;

vivod(derect+'db_ disk.db');

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

StringGrid1.Rows[0][0]:='Номер';

StringGrid1.Rows[0][1]:='Название фильма';

StringGrid1.Rows[0][2]:='Цена DVD-диска';

StringGrid1.Rows[0][3]:='Год выпуска';

StringGrid1.Rows[0][4]:='Режиссёр';

StringGrid1.Rows[0][5]:='Кинокомпания';

vivod (derect+'db_sot.db')

end;

procedure TForm1.N8Click(Sender: TObject);

begin

but:=MessageBox(0,'Закрыть программу?','Внимание!',MB_YESNO or MB_ICONINFORMATION);

if but=IDYES then

Close;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

vivod (derect+'db_ disk.db');

end;

procedure TForm1.N14Click(Sender: TObject);

begin

sort_1(derect+'db_ disk.db');

end;

procedure TForm1.N15Click(Sender: TObject);

begin

sort_2(derect+'db_ disk.db');

end;

procedure TForm1.N16Click(Sender: TObject);

begin

sort_3(derect+'db_ disk.db');

end;

procedure TForm1.N17Click(Sender: TObject);

begin

sort_4(derect+'db_ disk.db');

end;

procedure TForm1.N18Click(Sender: TObject);

begin

sort_5(derect+'db_sot.db');

end;

{Добавление}

procedure TForm1.N4Click(Sender: TObject);

begin

Form3.ShowModal;

vivod(derect+'db_ disk.db');

end;

{Вывод во всплывающем меню}

procedure TForm1.N2Click(Sender: TObject);

begin

vivod(derect+'db_ disk.db');

end;

{Сортировка во всплывающем меню}

procedure TForm1.N10Click(Sender: TObject);

begin

sort_1(derect+'db_ disk.db');

end;

procedure TForm1.N11Click(Sender: TObject);

begin

sort_2(derect+'db_sot.db');

end;

procedure TForm1.N12Click(Sender: TObject);

begin

sort_3(derect+'db_ disk.db');

end;

procedure TForm1.reg1Click(Sender: TObject);

begin

sort_4(derect+'db_ disk.db');

end;

procedure TForm1.cincom1Click(Sender: TObject);

begin

sort_5(derect+'db_ disk.db');

end;

{Очистка всплывающее}

procedure TForm1.N9Click(Sender: TObject);

begin

clearlist;

end;

{Очистка в меню}

procedure TForm1.N23Click(Sender: TObject);

begin

clearlist

end;

{Редактирование в меню}

procedure TForm1.N6Click(Sender: TObject);

begin

if (edit9.text='') or (edit9.text='Введите новые данные...') then

MessageBox(0,'Введите новые данные.','Внимание!',MB_ok or MB_ICONINFORMATION)

else

editzap;

end;

//на кнопку

procedure TForm1.Button2Click(Sender: TObject);

begin

deletef(horizon);

end;

//удаление во всплывающем

procedure TForm1.N26Click(Sender: TObject);

begin

deletef(horizon);

end;

//Удаление из меню

procedure TForm1.N5Click(Sender: TObject);

begin

deletef(horizon);

end;

///---------------------------------------------------

{Окно "О программе"}

procedure TForm1.N21Click(Sender: TObject);

begin

Form2.ShowModal;

end;

procedure TForm1.Edit9Click(Sender: TObject);

begin

edit9.clear;

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

but:=MessageBox(0,'Закрыть программу?','Внимание!',MB_YESNO or MB_ICONINFORMATION);

if but=IDYES then

Close;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

clearlist;

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

vivod(derect+'db_sot.db');

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Form3.ShowModal;

vivod(derect+'db_sot.db');

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Form4.ShowModal;

end;

procedure TForm1.N25Click(Sender: TObject);

begin

Form4.ShowModal;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

if (edit9.text='') or (edit9.text='Новые данные...') then

MessageBox(0,'Введите новые данные для изменения.','Внимание!',MB_ok or MB_ICONINFORMATION)

else

editzap;

end;

end.

Модуль Unit2.pas;

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, jpeg;

type

TForm2 = class(TForm)

Label2: TLabel;

Label6: TLabel;

Bevel1: TBevel;

Bevel2: TBevel;

Bevel3: TBevel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Button1: TButton;

Label1: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label7: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation