📄 itemsearchform.pas
字号:
unit ItemSearchForm;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, DBTables, DB, Grids, DBGrids;
type
TfrmItemSearch = class(TForm)
btnOK: TButton;
btnCancel: TButton;
DBGrid1: TDBGrid;
tblItem: TTable;
dsItem: TDataSource;
editFindItemNo: TEdit;
editFindItemDescription: TEdit;
tblItemItemNo: TStringField;
tblItemItemDescription: TStringField;
procedure DBGrid1DblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure editFindItemNoEnter(Sender: TObject);
procedure editFindItemDescriptionEnter(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure editFindItemNoKeyPress(Sender: TObject; var Key: Char);
procedure editFindItemDescriptionKeyPress(Sender: TObject; var Key: Char);
private
procedure SetItemNo(ItemNo: String);
function GetItemNo: String;
public
property ItemNo: String read GetItemNo write SetItemNo;
end;
var
frmItemSearch: TfrmItemSearch;
implementation
uses BS1Form;
{$R *.DFM}
procedure TfrmItemSearch.SetItemNo(ItemNo: String);
begin
if not tblItem.Locate('ItemNo', ItemNo, []) then tblItem.First;
end;
function TfrmItemSearch.GetItemNo: String;
begin
Result := tblItemItemNo.value;
end;
procedure TfrmItemSearch.DBGrid1DblClick(Sender: TObject);
begin
ModalResult := mrOK; //Close form as per OK button.
end;
procedure TfrmItemSearch.FormCreate(Sender: TObject);
var
x, intClientWidth: integer;
begin
tblItem.DatabaseName := strDatabaseName;
tblItem.Active := true;
if FontFactor <> 1 then begin //If using large fonts, resize grid columns.
intClientWidth := Trunc(20*FontFactor) + DBGrid1.Columns.Count - 1; //Scrollbar + grid lines.
for x := 0 to DBGrid1.Columns.Count - 1 do begin
DBGrid1.Columns[x].width := Trunc(DBGrid1.Columns[x].width*FontFactor);
intClientWidth := intClientWidth + DBGrid1.Columns[x].width;
end;
ClientWidth := intClientWidth;
end;
end;
procedure TfrmItemSearch.editFindItemNoEnter(Sender: TObject);
begin
editFindItemDescription.text := '';
end;
procedure TfrmItemSearch.editFindItemDescriptionEnter(Sender: TObject);
begin
editFindItemNo.text := '';
end;
procedure TfrmItemSearch.FormShow(Sender: TObject);
begin
editFindItemNo.setfocus;
editFindItemNo.text := '';
editFindItemDescription.text := '';
end;
procedure TfrmItemSearch.editFindItemNoKeyPress(Sender: TObject;
var Key: Char);
begin
if key <> #8 then begin //Not Backspace
if tblItem.IndexName <> '' then tblItem.IndexName := '';
if not tblItem.Locate('ItemNo', editFindItemNo.Text + Key,[loPartialKey]) then begin
Beep;
key := #0;
end;
end;
end;
procedure TfrmItemSearch.editFindItemDescriptionKeyPress(Sender: TObject;
var Key: Char);
begin
if key <> #8 then begin //Not Backspace
if tblItem.IndexName <> 'ItemDescription1' then tblItem.IndexName := 'ItemDescription1';
if not tblItem.Locate('ItemDescription', editFindItemDescription.Text + Key,[loCaseInsensitive, loPartialKey]) then begin
Beep;
Key := #0;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -