📄 modidvdfrm.pas
字号:
unit ModiDVDFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB, ExtCtrls, ComCtrls;
type
TFrmModiDVD = class(TForm)
ADOQuery1: TADOQuery;
bbtnQuit: TBitBtn;
bbtnSave: TBitBtn;
GroupBox1: TGroupBox;
Panel1: TPanel;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
GroupBox2: TGroupBox;
mmIntro: TMemo;
Label12: TLabel;
edCD_ID: TEdit;
edCD_NameCn: TEdit;
edCD_NameEn: TEdit;
edPrice: TEdit;
edNum_CD: TEdit;
edShow_Time: TEdit;
dtpPublish_Date: TDateTimePicker;
edDirector: TEdit;
edRole_Leading: TEdit;
edPublisher: TEdit;
edNum_Buy: TEdit;
cbCD_Key: TComboBox;
procedure FormCreate(Sender: TObject);
procedure bbtnQuitClick(Sender: TObject);
procedure ClearEdit(Sender: TObject);
procedure edCD_IDExit(Sender: TObject);
procedure edNum_CDKeyPress(Sender: TObject; var Key: Char);
procedure edShow_TimeKeyPress(Sender: TObject; var Key: Char);
procedure edNum_BuyKeyPress(Sender: TObject; var Key: Char);
procedure edPriceKeyPress(Sender: TObject; var Key: Char);
procedure bbtnSaveClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmModiDVD: TFrmModiDVD;
implementation
uses DVDInfoFrm, HuiyuanInfoFrm;
{$R *.dfm}
procedure TFrmModiDVD.ClearEdit(Sender: TObject);
begin
edCD_ID.Clear;
edCD_NameCn.Clear;
edCD_NameEn.Clear;
edPrice.Clear;
edNum_CD.Clear;
edShow_Time.Clear;
edDirector.Clear;
edRole_Leading.Clear;
edPublisher.Clear;
dtpPublish_Date.Date := Date();
edNum_Buy.Text :='无需填写';
cbCD_Key.Text := '--选择主题词--';
Panel1.Caption :='图片尺寸为 148×214';
mmIntro.Clear;
end;
procedure TFrmModiDVD.FormCreate(Sender: TObject);
begin
Caption := FrmDVDInfo.TitleText;
Panel1.Caption :='图片尺寸为 148×214';
edNum_Buy.Text :='无需填写';
cbCD_Key.Text := '--选择主题词--';
dtpPublish_Date.Date := Date();
if FrmDVDInfo.IsModify then
begin
edCD_ID.Text := FrmDVDInfo.ADOQuery1.FieldByName('CD_ID').AsString;
edCD_NameCn.Text := FrmDVDInfo.ADOQuery1.FieldByName('CD_NameCn').AsString;
edCD_NameEn.Text := FrmDVDInfo.ADOQuery1.FieldByName('CD_NameEn').AsString;
edPrice.Text := FrmDVDInfo.ADOQuery1.FieldByName('Price').AsString;
edNum_CD.Text := FrmDVDInfo.ADOQuery1.FieldByName('Num_CD').AsString;
edShow_Time.Text := FrmDVDInfo.ADOQuery1.FieldByName('Show_Time').AsString;
edDirector.Text := FrmDVDInfo.ADOQuery1.FieldByName('Director').AsString;
edRole_Leading.Text := FrmDVDInfo.ADOQuery1.FieldByName('Role_Leading').AsString;
edPublisher.Text := FrmDVDInfo.ADOQuery1.FieldByName('Publisher').AsString;
dtpPublish_Date.Date := FrmDVDInfo.ADOQuery1.FieldByName('Publish_Date').AsDateTime;
edNum_Buy.Text := FrmDVDInfo.ADOQuery1.FieldByName('Num_Buy').AsString;
cbCD_Key.Text := FrmDVDInfo.ADOQuery1.FieldByName('CD_Key').AsString;
try
Image1.Picture.LoadFromFile('DBS\Photo\'+FrmDVDInfo.ADOQuery1.FieldByName('Photo').AsString);
except
Panel1.Caption := '未找到相关图片';
end;
mmIntro.Text := FrmDVDInfo.ADOQuery1.FieldByName('Intro').AsString;
edCD_ID.ReadOnly := True;
edCD_ID.Color := rgb(200,200,200);
end;
end;
procedure TFrmModiDVD.bbtnQuitClick(Sender: TObject);
begin
Close;
end;
procedure TFrmModiDVD.edCD_IDExit(Sender: TObject);
begin
if (Length(Trim(edCD_ID.Text)) <> 10) and (not bbtnQuit.Focused) then
begin
Application.MessageBox('光盘号输入错误!长度必须十位','错误',MB_ICONWARNING+MB_OK);
edCD_ID.SetFocus;
edCD_ID.SelectAll;
end;
end;
procedure TFrmModiDVD.edNum_CDKeyPress(Sender: TObject; var Key: Char); //光盘数输入数字的合法性控制
begin
if (key <>#8) and (key<'0') or (key>'9') then
Key := Chr(0);
end;
procedure TFrmModiDVD.edShow_TimeKeyPress(Sender: TObject; var Key: Char); //片长输入数字的合法性控制
begin
if (key <>#8) and (key<'0') or (key>'9') then
Key := Chr(0);
end;
procedure TFrmModiDVD.edNum_BuyKeyPress(Sender: TObject; var Key: Char); //输入数字的合法性控制
begin
//if (key <>#8) and (key<'0') or (key>'9') then
//Key := Chr(0);
end;
procedure TFrmModiDVD.edPriceKeyPress(Sender: TObject; var Key: Char); //输入价格的合法性控制
var
i, keynum : Integer;
dotkey : String;
begin
keynum := 0;
for i:=1 to Length(edPrice.Text) do
begin
dotkey := Copy(edPrice.Text,i,1);
if dotkey ='.' then
keynum := keynum + 1;
end;
if ((key<'0') or (key>'9')) and (Key<>#8) and (Key<>'.') or ((keynum=1) and (key='.')) then
key := chr(0);
end;
procedure TFrmModiDVD.bbtnSaveClick(Sender: TObject);
begin
if Trim(edCD_NameCn.Text)='' then
begin
Application.MessageBox('中文片名不能为空!','错误',MB_ICONWARNING+MB_OK);
edCD_NameCn.SetFocus;
edCD_NameCn.SelectAll;
Exit;
end;
if Trim(edNum_CD.Text)='' then
begin
Application.MessageBox('光盘数不能为空!','错误',MB_ICONWARNING+MB_OK);
edNum_CD.SetFocus;
edNum_CD.SelectAll;
Exit;
end;
//if Trim(edNum_Buy.Text)='' then
//begin
// Application.MessageBox('引进数量不能为空!','错误',MB_ICONWARNING+MB_OK);
// edNum_Buy.SetFocus;
// edNum_Buy.SelectAll;
// Exit;
//end;
if cbCD_Key.Text = '--选择主题词--' then
begin
Application.MessageBox('请选择主题词!','错误',MB_ICONWARNING+MB_OK);
cbCD_Key.SetFocus;
cbCD_Key.SelectAll;
Exit;
end;
if FrmDVDInfo.IsModify then
begin //修改记录
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'Select * From CD_Info Where CD_ID = '''+edCD_ID.Text+'''';
ADOQuery1.Open;
ADOQuery1.Edit;
ADOQuery1.FieldByName('CD_NameCn').AsString := edCD_NameCn.Text;
ADOQuery1.FieldByName('CD_NameEn').AsString := edCD_NameEn.Text;
ADOQuery1.FieldByName('Price').AsFloat := StrToFloat(edPrice.Text);
ADOQuery1.FieldByName('Num_CD').AsInteger := StrToInt(edNum_CD.Text);
ADOQuery1.FieldByName('Show_Time').AsInteger := StrToInt(edShow_Time.Text);
ADOQuery1.FieldByName('Director').AsString := edDirector.Text;
ADOQuery1.FieldByName('Role_Leading').AsString := edRole_Leading.Text;
ADOQuery1.FieldByName('Publisher').AsString := edPublisher.Text;
ADOQuery1.FieldByName('Publish_Date').AsDateTime := dtpPublish_Date.Date;
//ADOQuery1.FieldByName('Num_Buy').AsInteger := StrToInt(edNum_Buy.Text);
ADOQuery1.FieldByName('CD_Key').AsString := cbCD_Key.Text;
//ADOQuery1.FieldByName('Photo').AsString := edCD_ID.Text+'.bmp';
ADOQuery1.FieldByName('Intro').AsString := mmIntro.Text;
ADOQuery1.Post;
Application.MessageBox('记录修改成功!', '成功',MB_OK+MB_ICONINFORMATION);
FrmModiDVD.Close;
FrmDVDInfo.ShowRecord(Sender);
end
else
begin //判断光盘号是否重复
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'Select * From CD_Info Where CD_ID = '''+edCD_ID.Text+'''';
ADOQuery1.Open;
if ADOQuery1.RecordCount = 0 then
begin //新增记录
ADOQuery1.Append;
ADOQuery1.FieldByName('CD_ID').AsString := edCD_ID.Text;
ADOQuery1.FieldByName('CD_NameCn').AsString := edCD_NameCn.Text;
ADOQuery1.FieldByName('CD_NameEn').AsString := edCD_NameEn.Text;
ADOQuery1.FieldByName('Price').AsFloat := StrToFloat(edPrice.Text);
ADOQuery1.FieldByName('Num_CD').AsInteger := StrToInt(edNum_CD.Text);
ADOQuery1.FieldByName('Show_Time').AsInteger := StrToInt(edShow_Time.Text);
ADOQuery1.FieldByName('Director').AsString := edDirector.Text;
ADOQuery1.FieldByName('Role_Leading').AsString := edRole_Leading.Text;
ADOQuery1.FieldByName('Publisher').AsString := edPublisher.Text;
ADOQuery1.FieldByName('Publish_Date').AsDateTime := dtpPublish_Date.Date;
//ADOQuery1.FieldByName('Num_Buy').AsInteger := StrToInt(edNum_Buy.Text);
ADOQuery1.FieldByName('Times_Borrow').AsInteger := 0;
ADOQuery1.FieldByName('CD_Key').AsString := cbCD_Key.Text;
ADOQuery1.FieldByName('Photo').AsString := edCD_ID.Text+'.bmp';
ADOQuery1.FieldByName('Intro').AsString := mmIntro.Text;
ADOQuery1.Post;
Application.MessageBox(PChar('记录新增成功!'+chr(10)+chr(13)+'请及时给予光盘店内编号'), '成功',MB_OK+MB_ICONINFORMATION);
ClearEdit(Sender);
FrmDVDInfo.ShowRecord(Sender);
end
else
begin
Application.MessageBox('光盘号重复,请核查!','出错',MB_OK+MB_ICONWARNING);
edCD_ID.SetFocus;
edCD_ID.SelectAll;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -