📄 unit_frmcinema.pas
字号:
unit Unit_frmcinema;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit_frmtemplate, ExtCtrls, StdCtrls, ComCtrls, CyberPanel,
ToolWin, ImgList, CyberListVw, Mask, CyberEdit,ADODB, Menus, CyberXPMenu;
type
Tfrmcinema = class(Tfrmtemplate)
CyberSizePanel1: TCyberSizePanel;
TreeView1: TTreeView;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ToolBar1: TToolBar;
ToolBtnAddCinema: TToolButton;
ToolBtnEditCinema: TToolButton;
ToolBtnDelCinema: TToolButton;
ToolButton4: TToolButton;
ToolBtnAddHall: TToolButton;
ToolBtnEditHall: TToolButton;
ToolBtnDelHall: TToolButton;
ToolBtnHallSet: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
Panel4: TPanel;
GroupBox2: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label12: TLabel;
Label13: TLabel;
Edtname: TCyberEdit;
Edtnationalcode: TCyberEdit;
edtadr: TCyberEdit;
edtperson: TCyberEdit;
edtcontact: TCyberEdit;
edtpostcode: TCyberEdit;
ListView1: TCyberListView;
PopupMenu1: TPopupMenu;
MenuAdd1: TMenuItem;
MenuEdit1: TMenuItem;
menudel1: TMenuItem;
N4: TMenuItem;
Menuadd2: TMenuItem;
MenuEdit2: TMenuItem;
MenuDel2: TMenuItem;
MenuHallset: TMenuItem;
CyberXPMenu1: TCyberXPMenu;
procedure ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
procedure FormShow(Sender: TObject);
procedure ToolBtnAddCinemaClick(Sender: TObject);
procedure ToolBtnEditCinemaClick(Sender: TObject);
procedure ToolBtnDelCinemaClick(Sender: TObject);
procedure MenuAdd1Click(Sender: TObject);
procedure MenuEdit1Click(Sender: TObject);
procedure menudel1Click(Sender: TObject);
procedure Menuadd2Click(Sender: TObject);
procedure MenuEdit2Click(Sender: TObject);
procedure MenuDel2Click(Sender: TObject);
procedure ToolBtnDelHallClick(Sender: TObject);
procedure ToolBtnAddHallClick(Sender: TObject);
procedure ToolBtnEditHallClick(Sender: TObject);
procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure TreeView1Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure ListView1DblClick(Sender: TObject);
procedure ListView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ToolBtnHallSetClick(Sender: TObject);
private
procedure InitTreeview;
procedure GetCinemainfobyid(_id:integer);
procedure refreshlistview(sqlstr:string);
{ Private declarations }
public
{ Public declarations }
end;
var
frmcinema: Tfrmcinema;
implementation
uses unit_public,unit_adodm,unit_frmcinemainfo, Unit_frmhallinfo,
Unit_frmseatset;
{$R *.dfm}
procedure Tfrmcinema.InitTreeview;
var
I,j,_id :integer;
rootnode,node0,node1 :TTreeNode;
qry :TAdoQuery;
reccount :Integer;
_name :String;
begin
treeview1.Items.Clear ;
treeview1.Items.BeginUpdate ;
try
qry :=TAdoQuery.Create(Application);
qry.Connection :=adodm.ADOCN ;
rootnode:=treeview1.Items.Add(nil,'所有影院');
rootnode.Data :=pointer(-1);
if publicinfo.Execsql('select * from Tblcinemainfo',false) then
begin
reccount :=adodm.ADOQRY.RecordCount;
if reccount<=0 then exit;
adodm.ADOQRY.First ;
for i:=1 to reccount do
begin
_id :=adodm.ADOQRY.fieldbyname('id').AsInteger;
_name :=adodm.ADOQRY.fieldbyname('name').AsString;
node0 :=treeview1.Items.AddChild(rootnode,_name);
node0.data :=pointer(_id);
qry.Close ;
qry.SQL.Clear ;
qry.SQL.Add('select * from tblhallinfo where cinemaid='+inttostr(_id));
qry.Open ;
if qry.RecordCount>0 then
begin
qry.First ;
for j:=1 to qry.RecordCount do
begin
_id :=qry.fieldbyname('id').AsInteger;
_name :=qry.fieldbyname('name').AsString;
node1 :=treeview1.Items.AddChild(node0,_name);
node1.Data :=pointer(_id);
qry.Next ;
end;
end;
adodm.ADOQRY.Next ;
end;
end;
finally
qry.Close ;
qry.Free ;
rootnode.Expand(true);
treeview1.Items.EndUpdate ;
end;
end;
procedure Tfrmcinema.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
inherited;
publicinfo.ListViewDraw(item,DefaultDraw);
end;
procedure Tfrmcinema.FormShow(Sender: TObject);
begin
inherited;
InitTreeview ;
end;
procedure Tfrmcinema.ToolBtnAddCinemaClick(Sender: TObject);
begin
inherited;
Frmcinemainfo :=TFrmcinemainfo.MyCreate(application,false);
try
Frmcinemainfo.ShowModal ;
finally
Frmcinemainfo.Free ;
InitTreeview;
end;
end;
procedure Tfrmcinema.ToolBtnEditCinemaClick(Sender: TObject);
var
selnode:TTreeNode;
begin
inherited;
selnode:=Treeview1.Selected ;
if (selnode=nil) or (selnode.Level<>1) then exit;
Frmcinemainfo :=TFrmcinemainfo.MyCreate(application,true);
try
Frmcinemainfo._id :=integer(selnode.Data);
if Frmcinemainfo.ShowModal=mrok then selnode.Text :=frmcinemainfo.EdtName.Text ;
finally
Frmcinemainfo.Free ;
end;
end;
procedure Tfrmcinema.ToolBtnDelCinemaClick(Sender: TObject);
var
selnode:TTreeNode;
sqlstr:string;
begin
inherited;
selnode:=Treeview1.Selected ;
if (selnode=nil) or (selnode.Level<>1) then exit;
sqlstr:='delete from tblcinemainfo where id='+inttostr(integer(selnode.Data));
if publicinfo.Execsql(sqlstr,true) then
begin
selnode.Delete ;
publicinfo.showmsg('影院'+selnode.text+'成功删除');
end;
end;
procedure Tfrmcinema.MenuAdd1Click(Sender: TObject);
begin
inherited;
ToolBtnAddCinemaClick(nil);
end;
procedure Tfrmcinema.MenuEdit1Click(Sender: TObject);
begin
inherited;
ToolBtnEditCinemaClick(nil);
end;
procedure Tfrmcinema.menudel1Click(Sender: TObject);
begin
inherited;
ToolBtnDelCinemaClick(nil);
end;
procedure Tfrmcinema.Menuadd2Click(Sender: TObject);
begin
inherited;
ToolBtnAddHallClick(nil)
end;
procedure Tfrmcinema.MenuEdit2Click(Sender: TObject);
begin
inherited;
ToolBtnEditHallClick(nil);
end;
procedure Tfrmcinema.MenuDel2Click(Sender: TObject);
begin
inherited;
ToolBtnDelHallClick(nil);
end;
procedure Tfrmcinema.ToolBtnDelHallClick(Sender: TObject);
var
selnode:TTreeNode;
sqlstr:string;
begin
inherited;
selnode:=Treeview1.Selected ;
if (selnode=nil) or (selnode.Level<>2) then exit;
sqlstr:='delete from tblhallinfo where id='+inttostr(integer(selnode.Data));
if publicinfo.Execsql(sqlstr,true) then
begin
selnode.Delete ;
publicinfo.showmsg('影厅'+selnode.text+'成功删除');
end;
end;
procedure Tfrmcinema.ToolBtnAddHallClick(Sender: TObject);
var
selnode:TTreeNode;
begin
inherited;
selnode:=treeview1.Selected ;
if (selnode=nil) or (selnode.Level<>1) then
begin
publicinfo.showmsg('请选择一个影院');
exit;
end;
Frmhallinfo :=TFrmhallinfo.MyCreate(application,false);
try
frmhallinfo.cinemaid :=integer(selnode.Data);
Frmhallinfo.ShowModal ;
finally
Frmhallinfo.Free ;
InitTreeview;
end;
end;
procedure Tfrmcinema.ToolBtnEditHallClick(Sender: TObject);
var
selnode:TTreeNode;
begin
inherited;
selnode:=Treeview1.Selected ;
if (selnode=nil) or (selnode.Level<>2) then exit;
Frmhallinfo :=TFrmhallinfo.MyCreate(application,true);
try
Frmhallinfo.id :=integer(selnode.Data);
if Frmhallinfo.ShowModal=mrok then selnode.Text :=Frmhallinfo.EdtName.Text ;
finally
Frmhallinfo.Free ;
end;
end;
procedure Tfrmcinema.TreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
selnode:TTreeNode;
begin
selnode:=TreeView1.GetNodeAt(x,Y );
if selnode<>nil then
begin
selnode.Selected:=true;
end;
end;
procedure Tfrmcinema.refreshlistview(sqlstr: string);
var
i :integer;
item0 :TListItem;
reccount:integer;
_cinemaname,_code,_name,_personcount,_remarks:string;
_id :integer;
begin
listview1.Items.Clear ;
listview1.Items.BeginUpdate ;
try
if publicinfo.Execsql(sqlstr,false) then
begin
reccount:=adodm.ADOQRY.RecordCount ;
if reccount>0 then
begin
with adodm.ADOQRY do
begin
First ;
for i:=1 to reccount do
begin
_id :=fieldbyname('id').AsInteger ;
_cinemaname :=fieldbyname('cinemaname').AsString ;
_code :=fieldbyname('code').AsString ;
_name :=fieldbyname('name').AsString ;
_personcount :=fieldbyname('personcount').AsString ;
_remarks :=fieldbyname('remarks').AsString ;
item0:=listview1.Items.Add ;
item0.Caption :=_cinemaname;
item0.SubItems.Add(_code);
item0.SubItems.Add(_name);
item0.SubItems.Add(_personcount);
item0.SubItems.Add(_remarks);
next;
end;
end;
end;
end;
finally
listview1.Items.EndUpdate ;
end;
end;
procedure Tfrmcinema.GetCinemainfobyid(_id: integer);
var
sqlstr:string;
begin
sqlstr :='select * from tblcinemainfo where id='+inttostr(_id);
if publicinfo.Execsql(sqlstr,false) then
begin
if adodm.ADOQRY.RecordCount<0 then exit;
adodm.ADOQRY.First ;
Edtnationalcode.Text:=adodm.ADOQRY.fieldbyname('nationalcode').AsString ;
edtname.Text :=adodm.ADOQRY.fieldbyname('name').AsString ;
edtperson.Text :=adodm.ADOQRY.fieldbyname('contact').AsString ;
edtcontact.Text :=adodm.ADOQRY.fieldbyname('phone').AsString ;
edtpostcode.Text :=adodm.ADOQRY.fieldbyname('postcode').AsString ;
edtadr.Text :=adodm.ADOQRY.fieldbyname('address').AsString ;
end;
end;
procedure Tfrmcinema.TreeView1Click(Sender: TObject);
var
selnode :TTreeNode;
sqlstr :string;
begin
inherited;
selnode:=Treeview1.Selected ;
if selnode=nil then exit;
if selnode.Level=0 then sqlstr:='select * from tblhallinfo_view';
if selnode.Level=1 then
begin
GetCinemainfobyid(integer(selnode.Data));
sqlstr:='select * from tblhallinfo_view where cinemaid='+inttostr(integer(selnode.Data));
end
else if selnode.Level=2 then
sqlstr:='select * from tblhallinfo_view where id='+inttostr(integer(selnode.Data));
refreshlistview(sqlstr);
end;
procedure Tfrmcinema.ToolButton10Click(Sender: TObject);
begin
inherited;
close;
end;
procedure Tfrmcinema.ListView1DblClick(Sender: TObject);
var
selitem:TListItem;
begin
inherited;
if not ToolBtnEditHall.Enabled then exit;
selitem:=listview1.Selected ;
if (selitem=nil) then exit;
Frmhallinfo :=TFrmhallinfo.MyCreate(application,true);
try
Frmhallinfo.id :=integer(selitem.Data);
if Frmhallinfo.ShowModal=mrok then
begin
selitem.SubItems[0] :=Frmhallinfo.EdtCode.Text ;
selitem.SubItems[1] :=Frmhallinfo.EdtName.Text ;
selitem.SubItems[2] :=Frmhallinfo.EdtSeatcount.Text ;
selitem.SubItems[3] :=Frmhallinfo.Memoremarks.Text ;
end;
finally
Frmhallinfo.Free ;
end;
end;
procedure Tfrmcinema.ListView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if key=13 then ListView1DblClick(nil) ;
end;
procedure Tfrmcinema.ToolBtnHallSetClick(Sender: TObject);
var
selnode:TTreeNode;
begin
inherited;
selnode:=Treeview1.Selected ;
if (selnode=nil) or (selnode.Level<>2) then
begin
publicinfo.showmsg('请选择一个影厅');
exit;
end;
frmseatset:=Tfrmseatset.Create(Application);
frmseatset.hallid:=integer(selnode.Data);
frmseatset.showmodal;
frmseatset.free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -