⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 oracle基础知识讲义
💻 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 + -