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

📄 grdlook.pas

📁 InfoPower_Studio 2007 v5.0.1.3 banben
💻 PAS
字号:
unit GrdLook;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Grids, DBGrids, DBTables, DB, wwstr, StdCtrls,
  Buttons, {dbiProcs, dbiTypes,} DBLookup, Wwkeycb, Wwdbgrid,
  Wwtable, Wwdblook, Wwdbigrd, Wwdatsrc, Wwdbdlg, ExtCtrls,
  TabNotBk, DBCtrls, IniFiles, wwidlg, Wwdotdot, Wwdbcomb, Mask,
  Wwdbedit, ComCtrls, wwrcdvw, Menus, wwDialog, wwDBDateTimePicker,
  wwriched;

type
  TGridDemo = class(TForm)
    CustomerTable: TwwTable;
    ZipTable: TwwTable;
    CustomerSource: TwwDataSource;
    wwDBLookupCombo1: TwwDBLookupCombo;
    TabbedNotebook1: TTabbedNotebook;
    wwDBGrid1: TwwDBGrid;
    wwDBGrid2: TwwDBGrid;
    Memo1: TMemo;
    Memo2: TMemo;
    wwDBLookupCombo2: TwwDBLookupCombo;
    wwLookupDialog1: TwwLookupDialog;
    Button1: TButton;
    wwDBGrid3: TwwDBGrid;
    BitBtn2: TBitBtn;
    CustomerTableCustomerNo: TIntegerField;
    CustomerTableBuyer: TStringField;
    CustomerTableCompanyName: TStringField;
    CustomerTableFirstName: TStringField;
    CustomerTableLastName: TStringField;
    CustomerTableStreet: TStringField;
    CustomerTableCity: TStringField;
    CustomerTableState: TStringField;
    CustomerTableZip: TStringField;
    CustomerTableFirstContactDate: TDateField;
    CustomerTablePhoneNumber: TStringField;
    CustomerTableInformation: TMemoField;
    CustomerTableRequestedDemo: TStringField;
    CustomerTableLogical: TBooleanField;
    ZipTableZIP: TStringField;
    ZipTableCITY: TStringField;
    ZipTableSTATE: TStringField;
    CustomerTableZipCity: TStringField;
    wwDBRichEdit1: TwwDBRichEdit;
    procedure TabbedNotebook1Change(Sender: TObject; NewTab: Integer;
      var AllowChange: Boolean);
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure wwLookupDialog1UserButton1Click(Sender: TObject;
      LookupTable: TDataSet);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure wwDBGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure wwDBGrid2CalcCellColors(Sender: TObject; Field: TField;
      State: TGridDrawState; Highlight: Boolean; AFont: TFont;
      ABrush: TBrush);
    procedure wwDBGrid3MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
  public
  end;

var
  GridDemo: TGridDemo;

implementation

{$R *.DFM}


{ Demo program uses two grids connected to the same table              }
{ This code causes each grid to display slightly different fields      }
procedure TGridDemo.TabbedNotebook1Change(Sender: TObject; NewTab: Integer;
  var AllowChange: Boolean);
begin
   { Post to prevent record from locking twice}
   if CustomerTable.modified then CustomerTable.post;
end;

procedure TGridDemo.FormShow(Sender: TObject);
begin
   TabbedNotebook1.pageIndex:= 0;
end;

{Lookup and fill when button is clicked }
procedure TGridDemo.Button1Click(Sender: TObject);
begin
   with wwLookupDialog1 do begin
      (LookupTable as TwwTable).indexname:= '';
      (LookupTable as TwwTable).wwFindKey([CustomerTableZip.asString]);
      if execute then begin
         CustomerTable.edit;
         CustomerTableZip.asString := LookupTable.fieldByName('Zip').asString;
         CustomerTableCity.asString := LookupTable.fieldByName('City').asString;
         CustomerTableState.asString:= LookupTable.fieldByName('State').asString;
      end
   end
end;

procedure TGridDemo.wwLookupDialog1UserButton1Click(Sender: TObject;
  LookupTable: TDataSet);
begin
   MessageDlg('Attach any code you want to this button.', mtinformation, [mbok], 0);
end;

procedure TGridDemo.BitBtn2Click(Sender: TObject);
begin
   Close;
end;

procedure TGridDemo.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   CustomerTable.CheckBrowseMode;
end;

{ The following code, though not executed in the demo, shows how you
  can force an automatic exit of a grid column after a certain number of
  characters have been entered.
}
procedure TGridDemo.wwDBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);

   Function isValidChar(key: word): boolean;
   begin
      result:= (key = VK_BACK) or (key=VK_SPACE) or (key=VK_DELETE) or
               ((key >= ord('0')) and (key<=VK_DIVIDE));
   end;

begin
  { Exits grid column after 2 characters typed into City field }
   with (Sender as TwwDBGrid) do begin
      if GetActiveField.FieldName='City' then
      begin
         if not isValidChar(key) then exit;
         if length(InplaceEditor.Text)>=2 then begin
           SelectedIndex:= SelectedIndex + 1;
         end
      end
   end
end;

procedure TGridDemo.wwDBGrid2CalcCellColors(Sender: TObject; Field: TField;
  State: TGridDrawState; Highlight: Boolean; AFont: TFont; ABrush: TBrush);
begin
   if (Field<>Nil) and (Field.FieldName='MyColoredField') then ABrush.Color:= clYellow;
end;

procedure TGridDemo.wwDBGrid3MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var coord: TGridCoord;
begin
   if ssDouble in Shift then
   begin
      coord := wwDBGrid1.MouseCoord(x,y);
      MessageDlg('You have selected column ' + intToStr(coord.x),
		mtInformation, [mbOK], 0);
   end
end;

end.

⌨️ 快捷键说明

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