📄 fnetbarperson.pas
字号:
unit fNetBarPerson;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, Buttons, ComCtrls, StdCtrls,
DelphiTwain, ExtDlgs,Inifiles, DB, TinyDB,Jpeg, DrLabel, Mask;
const
C_INIFILENAME = 'NetBarPerson.ini';
type
TfrmMain = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
StatusBar1: TStatusBar;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
DBGrid1: TDBGrid;
Panel5: TPanel;
DBNavigator1: TDBNavigator;
Panel6: TPanel;
ComboBox1: TComboBox;
SpeedButton8: TSpeedButton;
DelphiTwain1: TDelphiTwain;
SavePic: TSavePictureDialog;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
ComboBox2: TComboBox;
SpeedButton9: TSpeedButton;
TinyDatabase1: TTinyDatabase;
TinyTable1: TTinyTable;
DataSource1: TDataSource;
SpeedButton10: TSpeedButton;
Memo1: TMemo;
Panel4: TPanel;
ContainImage: TScrollBox;
Image1: TImage;
DRLabel1: TDRLabel;
DRLabel2: TDRLabel;
Panel7: TPanel;
Image2: TImage;
Bevel1: TBevel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBMemo1: TDBMemo;
DRLabel3: TDRLabel;
DRLabel4: TDRLabel;
DRLabel5: TDRLabel;
edit1: TEdit;
DRLabel6: TDRLabel;
DBEdit3: TDBEdit;
DRLabel7: TDRLabel;
Splitter1: TSplitter;
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure DelphiTwain1TwainAcquire(Sender: TObject;
const Index: Integer; Image: TBitmap; var Cancel: Boolean);
procedure FormCreate(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ContainImageResize(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure TinyTable1AfterScroll(DataSet: TDataSet);
private
{ Private declarations }
ClickPos: TPoint;
public
{ Public declarations }
SourceIndex:Integer;
end;
Function FillSpaceL(const sSrc:String;iLen:integer=25):String;
var
frmMain: TfrmMain;
implementation
uses uPerson;
{$R *.dfm}
Function FillSpaceL(const sSrc:String;iLen:integer=25):String;
Var
sTemp:String;
i:Integer;
begin
sTemp := '';
For i:=iLen downto Length(sSrc)+1 Do sTemp := sTemp+ ' ';
Result := sTemp + sSrc;
end;
procedure TfrmMain.SpeedButton7Click(Sender: TObject);
begin
Close;
end;
procedure TfrmMain.SpeedButton1Click(Sender: TObject);
begin
//Try loading the library
if DelphiTwain1.LoadLibrary then
begin
//Same as SourceManangerLoaded := TRUE
DelphiTwain1.LoadSourceManager();
//Select the source
SourceIndex := DelphiTwain1.SelectSource();
With TIniFile.Create(C_INIFILENAME) do
Begin
WriteInteger('Device','SourceIndex', SourceIndex );
Free;
End;
{ if SourceIndex <> -1 then
with DelphiTwain1.Source[SourceIndex] do
begin
//Prepare for transfering using ttmFile mode
Loaded := TRUE;
TransferMode := ttmMemory;
Enabled := TRUE;
end else ShowMessage('Cancelled') }
end
else ShowMessage('Twain not installed')
end;
procedure TfrmMain.DelphiTwain1TwainAcquire(Sender: TObject;
const Index: Integer; Image: TBitmap; var Cancel: Boolean);
begin
Image1.Picture.Assign(Image);
Cancel := TRUE;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
With TIniFile.Create(C_INIFILENAME) do
Begin
SourceIndex := ReadInteger('Device','SourceIndex',-1);
Free;
End;
if not DirectoryExists( '.\img' ) then
ForceDirectories( '.\img' );
end;
procedure TfrmMain.SpeedButton2Click(Sender: TObject);
begin
if SourceIndex < 0 then SpeedButton1.Click
else
Begin
DelphiTwain1.LoadLibrary ;
DelphiTwain1.LoadSourceManager();
End;
if SourceIndex <> -1 then
with DelphiTwain1.Source[SourceIndex] do
begin
//Prepare for transfering using ttmFile mode
Loaded := TRUE;
TransferMode := ttmMemory;
Enabled := TRUE;
while DelphiTwain1.Source[SourceIndex].Enabled do Application.ProcessMessages;
{Unload library}
DelphiTwain1.UnloadLibrary;
end else ShowMessage('Cancelled')
end;
procedure TfrmMain.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
NewPos: TPoint;
begin
if ssLeft in Shift then
begin
{Calculate new position}
NewPos.X := Image1.Left + x - ClickPos.x;
NewPos.Y := Image1.Top + y - ClickPos.y;
if NewPos.x + Image1.Width < ContainImage.Width then
NewPos.x := ContainImage.Width - Image1.Width;
if NewPos.y + Image1.Height < ContainImage.Height then
NewPos.y := ContainImage.Height - Image1.Height;
if NewPos.X > 0 then NewPos.X := 0;
if NewPos.Y > 0 then NewPos.Y := 0;
Image1.Top := NewPos.Y;
Image1.Left := NewPos.X;
end {if ssLeft in Shift}
end;
procedure TfrmMain.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ClickPos.x := X;
ClickPos.y := Y;
end;
procedure TfrmMain.ContainImageResize(Sender: TObject);
begin
ClickPos.X := 0; ClickPos.Y := 0;
Image1MouseMove(Self, [ssLeft], 0, 0);
end;
procedure TfrmMain.SpeedButton4Click(Sender: TObject);
begin
// frmNewPerson.showModal;
// SpeedButton9.Enabled := False;
end;
procedure TfrmMain.SpeedButton8Click(Sender: TObject);
begin
TabSheet1.Show;
if Not TinyTable1.Locate('person_no',VarArrayOf([combobox1.Text]) ,[loCaseInsensitive]) then showmessage('没有找到该编号。');
combobox1.SelectAll;
combobox1.SetFocus;
end;
procedure TfrmMain.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if (key = #13) and (Trim(ComboBox1.Text) <> '') then SpeedButton8.Click;
end;
procedure TfrmMain.SpeedButton10Click(Sender: TObject);
begin
SpeedButton2.Click;
end;
procedure TfrmMain.SpeedButton9Click(Sender: TObject);
Var
sPhoto:String;
aJPEGImage:TJPEGImage;
begin
With TinyTable1 do
Begin
Append;
FieldByName('person_no').AsString := formatDateTime('mmddhhnnss',Now);
FieldByName('person_name').AsString := Edit1.Text;
FieldByName('desc').AsString := Memo1.Text;
FieldByName('AppendDate').AsDateTime := Now;
Update;
Refresh;
edit;
ComboBox2.Text := InttoStr(FieldByName('person_id').AsInteger);
FieldByName('person_no').AsString := ComboBox2.Text;
sPhoto := '.\img\'+ ComboBox2.Text+'.jpg';
if FileExists(sPhoto) then DeleteFile(sPhoto);
FieldByName('person_photo').AsString := sPhoto;
aJPEGImage := TJPEGImage.Create;
aJPEGImage.Assign(Image1.Picture.Graphic);
aJPEGImage.SaveToFile(sPhoto);
// update;
// Refresh;
post;
End;
end;
procedure TfrmMain.TinyTable1AfterScroll(DataSet: TDataSet);
Var
sPhoto:String;
begin
with TinyTable1 do
if Not TinyTable1.Eof then
Begin
sPhoto := FieldByName('person_photo').AsString;
if FileExists(sPhoto) then
Image2.Picture.LoadFromFile(sPhoto);
End;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -