nav.pas

来自「《Delphi开发人员指南》配书原码」· PAS 代码 · 共 111 行

PAS
111
字号
unit Nav;

interface

uses
  SysUtils, Windows, Messages, Classes, Controls, Forms, StdCtrls,
  Grids, DBGrids, DB, DBTables, ExtCtrls;

type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    GetButton: TButton;
    GotoButton: TButton;
    ClearButton: TButton;
    GroupBox2: TGroupBox;
    FirstButton: TButton;
    LastButton: TButton;
    NextButton: TButton;
    PriorButton: TButton;
    MoveByButton: TButton;
    Edit1: TEdit;
    Panel1: TPanel;
    PosLbl: TLabel;
    Label1: TLabel;
    Table1NAME: TStringField;
    Table1SIZE: TSmallintField;
    Table1WEIGHT: TSmallintField;
    Table1AREA: TStringField;
    Table1BMP: TBlobField;
    procedure FirstButtonClick(Sender: TObject);
    procedure LastButtonClick(Sender: TObject);
    procedure NextButtonClick(Sender: TObject);
    procedure PriorButtonClick(Sender: TObject);
    procedure MoveByButtonClick(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure GetButtonClick(Sender: TObject);
    procedure GotoButtonClick(Sender: TObject);
    procedure ClearButtonClick(Sender: TObject);
  private
    BM: TBookmarkStr;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FirstButtonClick(Sender: TObject);
begin
  Table1.First;         // Go to first record in table
end;

procedure TForm1.LastButtonClick(Sender: TObject);
begin
  Table1.Last;          // Go to last record in table
end;

procedure TForm1.NextButtonClick(Sender: TObject);
begin
  Table1.Next;          // Go to next record in table
end;

procedure TForm1.PriorButtonClick(Sender: TObject);
begin
  Table1.Prior;         // Go to prior record in table
end;

procedure TForm1.MoveByButtonClick(Sender: TObject);
begin
  // Move a specified number of record forward or back in the table
  Table1.MoveBy(StrToInt(Edit1.Text));
end;

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  // Set caption appropriately, depending on state of Table1 BOF/EOF
  if Table1.BOF then PosLbl.Caption := 'Beginning'
  else if Table1.EOF then PosLbl.Caption := 'End'
  else PosLbl.Caption := 'Somewheres in between';
end;

procedure TForm1.GetButtonClick(Sender: TObject);
begin
  BM := Table1.Bookmark;        // Get a bookmark
  GotoButton.Enabled := True;   // Enable/disable proper buttons
  GetButton.Enabled := False;
  ClearButton.Enabled := True;
end;

procedure TForm1.GotoButtonClick(Sender: TObject);
begin
  Table1.Bookmark := BM;        // Go to the bookmark position
end;

procedure TForm1.ClearButtonClick(Sender: TObject);
begin
  BM := '';                     // clear the bookmark
  GotoButton.Enabled := False;  // Enable/disable appropriate buttons
  GetButton.Enabled := True;
  ClearButton.Enabled := False;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?