📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, DB, DBTables;
type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
CodeEdit: TEdit;
DBGrid1: TDBGrid;
NameEdit: TEdit;
procedure CodeEditEnter(Sender: TObject);
procedure CodeEditExit(Sender: TObject);
procedure CodeEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CodeEditKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CodeEditEnter(Sender: TObject);
begin
if CodeEdit.text<>'' then
begin
CodeEdit.SelStart:=length(CodeEdit.text);
Table1.locate('code', CodeEdit.text,[lopartialkey]);
End;
end;
procedure TForm1.CodeEditExit(Sender: TObject);
begin
if activecontrol<>dbgrid1 then
begin
dbgrid1.Visible:=false;
Table1.Locate('code',codeedit.text,[lopartialkey]);
if Table1.Eof then
begin
dbgrid1.Visible:=true;
exit;
end;
if not Table1.Eof then
begin
codeedit.Text:=Table1.fieldbyname('code').asstring;
NameEdit.Text := Table1.fieldbyname('name').asstring;
end;
end;
end;
procedure TForm1.CodeEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
i:integer;
begin
if (Table1.RecordCount>0) then
begin
case key of
48..57: begin
dbgrid1.Visible:=true;
Table1.Locate('code',CodeEdit.text,[lopartialkey]);
end;
vk_next: if dbgrid1.Visible then
begin
i:=0;
while (not Table1.Eof) and (i<11) do
begin
Table1.Next;
i:=i+1;
end;
CodeEdit.Text:=Table1.fieldbyname('code').asstring;
end;
vk_prior: if dbgrid1.Visible then
begin
i:=0;
while (not Table1.Bof) and (i<11) do
begin
Table1.prior;
i:=i+1;
end;
CodeEdit.Text:=Table1.fieldbyname('code').asstring;
end;
vk_down: if dbgrid1.Visible then
begin
if not Table1.Eof then
begin
Table1.Next;
CodeEdit.Text:=Table1.fieldbyname('code').asstring;
end;
end;
vk_up: if dbgrid1.Visible then
begin
if not Table1.Bof then
begin
Table1.Prior;
CodeEdit.Text:=Table1.fieldbyname('code').asstring;
end;
end;
end;
end
else
dbgrid1.Visible:=false;
CodeEdit.SelStart:=length(CodeEdit.text);
end;
procedure TForm1.CodeEditKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Table1.RecordCount>0) then
begin
if ((key>=48) and (key<=57)) then
Table1.Locate('code',codeedit.text,[lopartialkey]);
if (key=VK_back) and (codeedit.text<>'') then
Table1.Locate('code',codeedit.text,[lopartialkey]);
if (key=VK_BACK) and (codeedit.text='') then
Table1.First;
if (key=vk_down) or (key=vk_up) or (key=vk_prior) or (key=vk_next) then
if dbgrid1.Visible then
codeedit.Text:=Table1.fieldbyname('code').asstring;
end
else
dbgrid1.Visible:=false;
codeedit.SelStart:=length(codeedit.text);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -