📄 utxcj.pas
字号:
btprior.Enabled :=false; //上一个按钮不可用
btnext.Enabled :=false; //下一个按钮不可用
btrefresh.Enabled :=false; //重拍按钮不可用
image1.Picture.LoadFromFile(extractfilepath(application.ExeName)+'picture\photo\no.bmp');
end
else //有记录
begin
with dm.adoinfoquery do
begin
editxm.Text := fieldbyname('xm').AsString ;
editxh.Text := fieldbyname('xh').AsString ;
editxy.Text := fieldbyname('yx').AsString ;
editzy.Text := fieldbyname('zymc').AsString ;
editbj.Text := fieldbyname('bhmc').AsString ;
end;
SetColomnWidth(dbxsxx); //调用使dbxsxx控件的宽度适宜
with dm.adocard do
begin
close;
sql.Clear ;
sql.Add('select * from card where xh='''+trim(editxh.Text)+'''');
open;
end;
if dm.adocard.RecordCount=0 then //表示card(卡片)表 没有该记录
begin
btquery.Enabled :=false; //如果有记录,则查询按钮不可用
btprior.Enabled :=true;
btnext.Enabled :=true;
btrefresh.Enabled :=false;
btphoto.Enabled :=true;
image1.Picture.LoadFromFile(extractfilepath(application.ExeName)+'picture\photo\no.bmp');
end
else //表示card表中有该记录
begin
btquery.Enabled :=false; //如果有记录,则查询按钮不可用
btprior.Enabled :=true;
btnext.Enabled :=true;
btrefresh.Enabled :=true; //重拍按钮可用
btphoto.Enabled :=false; //拍照按钮就不可用
readfromdatabase; //从数据库中读出图片数据显示在image1中
end;
label12.Caption :=inttostr(dm.adoinfoquery.RecordCount);//显示查询的记录数量
end;
end;
procedure Ttxcjfrm.cbxyClick(Sender: TObject);//当点击学院下拉框时
begin
if cbxy.Text <>'' then
btquery.Enabled :=true; //是查询按钮可用
btprior.Enabled :=false;
btnext.Enabled :=false;
btrefresh.Enabled :=false;
btphoto.Enabled :=false;
dbxsxx.DataSource :=nil; //使dbxsxx的数据源为空
end;
procedure Ttxcjfrm.cbzyClick(Sender: TObject); //点击专业下拉框时发生事件
begin
if not btquery.Enabled then
btquery.Enabled :=true;
btprior.Enabled :=false;
btnext.Enabled :=false;
btrefresh.Enabled :=false;
btphoto.Enabled :=false;
dbxsxx.DataSource :=nil;
end;
procedure Ttxcjfrm.cbnjClick(Sender: TObject); //点击年纪下拉框时发生事件
begin
if not btquery.Enabled then
btquery.Enabled :=true;
btprior.Enabled :=false;
btnext.Enabled :=false;
btrefresh.Enabled :=false;
btphoto.Enabled :=false;
dbxsxx.DataSource :=nil;
end;
procedure Ttxcjfrm.cbbjClick(Sender: TObject); //点击班级下拉框时发生
begin
if not btquery.Enabled then
btquery.Enabled :=true;
btprior.Enabled :=false;
btnext.Enabled :=false;
btrefresh.Enabled :=false;
btphoto.Enabled :=false;
dbxsxx.DataSource :=nil;
end;
procedure Ttxcjfrm.Timer1Timer(Sender: TObject);
begin
btexit.Font.Color:=random(350000);//使退出按钮很显眼,它不断地变化颜色
end;
procedure Ttxcjfrm.FormActivate(Sender: TObject);
begin
//photo
hWndC := capCreateCaptureWindowA('My Own Capture Window',
WS_CHILD or WS_VISIBLE ,
image2.Left,
image2.Top,
image2.Width,
image2.Height,
txcjfrm.Handle,
0);
if hWndC <> 0 then
SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
end;
procedure Ttxcjfrm.BtphotoClick(Sender: TObject); //拍照按钮事件
begin
if hWndC <> 0 then
SendMessage(hWndC,WM_CAP_SAVEDIB,0,longint(pchar(extractfilepath(application.ExeName)+'picture\photo\photo.bmp')));
image1.Picture.LoadFromFile(extractfilepath(application.ExeName)+'picture\photo\photo.bmp');
ZoomImage(image1.Width ,image1.Height);//调用缩小图片尺寸过程
image1.Picture.SaveToFile(extractfilepath(paramstr(0))+'picture\photo\photo.bmp');
savetodatabase; //调用保存图片到数据库的函数
btphoto.Enabled :=false; //拍了之后使拍照按钮不可用
btrefresh.Enabled :=true; //拍了之后使重拍按钮可用
end;
procedure Ttxcjfrm.BtrefreshClick(Sender: TObject); //重拍按钮事件
begin
btphoto.Enabled :=true; //按下重拍按钮后,拍照按钮可用
btrefresh.Enabled :=false; //按下重拍按钮后,重拍按钮不可用
image1.Picture.LoadFromFile(extractfilepath(application.ExeName)+'picture\photo\no.bmp');
with dm.adocard do //从card表中删除要重拍的记录
begin
close;
sql.Clear ;
sql.Add('delete from card where xh=''' +trim(editxh.Text)+'''');
execsql;
end;
end;
procedure Ttxcjfrm.BtnextClick(Sender: TObject); //下一个按钮事件
begin
dm.adoinfoquery.Next;
if dm.adoinfoquery.Eof then
dm.adoinfoquery.First;
with dm.adoinfoquery do //显示学生数据信息到文本框中
begin
editxm.Text := fieldbyname('xm').AsString ;
editxh.Text := fieldbyname('xh').AsString ;
editxy.Text := fieldbyname('yx').AsString ;
editzy.Text := fieldbyname('zymc').AsString ;
editbj.Text := fieldbyname('bhmc').AsString ;
end;
with dm.adocard do
begin
close;
sql.Clear ;
sql.Add('select * from card where xh='''+trim(editxh.Text)+'''');
open;
end;
if dm.adocard.RecordCount=0 then //表示card(卡片)表 没有该记录
begin
btquery.Enabled :=false; //如果有记录,则查询按钮不可用
btprior.Enabled :=true;
btnext.Enabled :=true;
btrefresh.Enabled :=false;
btphoto.Enabled :=true;
image1.Picture.LoadFromFile(extractfilepath(application.ExeName)+'picture\photo\no.bmp');
end
else //表示card表中有该记录
begin
btquery.Enabled :=false; //如果有记录,则查询按钮不可用
btprior.Enabled :=true;
btnext.Enabled :=true;
btrefresh.Enabled :=true; //重拍按钮可用
btphoto.Enabled :=false; //拍照按钮就不可用
readfromdatabase; //从数据库中读出图片数据显示在image1中
end;
end;
procedure Ttxcjfrm.BtpriorClick(Sender: TObject);
begin
dm.adoinfoquery.Prior ;
if dm.adoinfoquery.Bof then
dm.adoinfoquery.Last;
with dm.adoinfoquery do //显示学生数据信息到文本框中
begin
editxm.Text := fieldbyname('xm').AsString ;
editxh.Text := fieldbyname('xh').AsString ;
editxy.Text := fieldbyname('yx').AsString ;
editzy.Text := fieldbyname('zymc').AsString ;
editbj.Text := fieldbyname('bhmc').AsString ;
end;
with dm.adocard do
begin
close;
sql.Clear ;
sql.Add('select * from card where xh='''+trim(editxh.Text)+'''');
open;
end;
if dm.adocard.RecordCount=0 then //表示card(卡片)表 没有该记录
begin
btquery.Enabled :=false; //如果有记录,则查询按钮不可用
btprior.Enabled :=true;
btnext.Enabled :=true;
btrefresh.Enabled :=false;
btphoto.Enabled :=true;
image1.Picture.LoadFromFile(extractfilepath(application.ExeName)+'picture\photo\no.bmp');
end
else //表示card表中有该记录
begin
btquery.Enabled :=false; //如果有记录,则查询按钮不可用
btprior.Enabled :=true;
btnext.Enabled :=true;
btrefresh.Enabled :=true; //重拍按钮可用
btphoto.Enabled :=false; //拍照按钮就不可用
readfromdatabase; //从数据库中读出图片数据显示在image1中
end;
end;
procedure Ttxcjfrm.dbxsxxCellClick(Column: TColumn);//单击dbxsxx控件单元格时,显示你单击单元格的内容信息到文本匡中
begin
with dm.adoinfoquery do //显示学生数据信息到文本框中
begin
editxm.Text := fieldbyname('xm').AsString ;
editxh.Text := fieldbyname('xh').AsString ;
editxy.Text := fieldbyname('yx').AsString ;
editzy.Text := fieldbyname('zymc').AsString ;
editbj.Text := fieldbyname('bhmc').AsString ;
end;
with dm.adocard do
begin
close;
sql.Clear ;
sql.Add('select * from card where xh='''+trim(editxh.Text)+'''');
open;
end;
if dm.adocard.RecordCount=0 then //表示card(卡片)表 没有该记录
begin
btquery.Enabled :=false; //如果有记录,则查询按钮不可用
btprior.Enabled :=true;
btnext.Enabled :=true;
btrefresh.Enabled :=false;
btphoto.Enabled :=true;
image1.Picture.LoadFromFile(extractfilepath(application.ExeName)+'picture\photo\no.bmp');
end
else //表示card表中有该记录
begin
btquery.Enabled :=false; //如果有记录,则查询按钮不可用
btprior.Enabled :=true;
btnext.Enabled :=true;
btrefresh.Enabled :=true; //重拍按钮可用
btphoto.Enabled :=false; //拍照按钮就不可用
readfromdatabase; //从数据库中读出图片数据显示在image1中
end;
end;
procedure Ttxcjfrm.dbxsxxDrawColumnCell(Sender: TObject;
const Rect: TRect;DataCol: Integer; Column: TColumn;
State: TGridDrawState);//对dbgrid实现隔行着色
begin
if (dbxsxx.DataSource.DataSet.RecNo mod 2)=0 then
dbxsxx.Canvas.Brush.Color := clWhite
else
dbxsxx.Canvas.Brush.Color := clAqua;
if((State=[gdSelected]) or (State=[gdSelected,gdFocused])) then
if not dbxsxx.SelectedRows.CurrentRowSelected then
dbxsxx.Canvas.Brush.Color := clHighlight;
dbxsxx.Canvas.Pen.Mode := pmMask;
dbxsxx.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure Ttxcjfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
mainfrm.StatusBar1.Panels.Items[1].Text:='';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -