home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Books / 4 / EX19.ZIP / STA_UNIT.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-12-08  |  3.3 KB  |  154 lines

  1. unit Sta_unit;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, DBTables, DB, ExtCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Panel1: TPanel;
  12.     Table1: TTable;
  13.     DataSource1: TDataSource;
  14.     Label1: TLabel;
  15.     Label2: TLabel;
  16.     Label3: TLabel;
  17.     Label4: TLabel;
  18.     Label5: TLabel;
  19.     Label6: TLabel;
  20.     Edit1: TEdit;
  21.     Edit2: TEdit;
  22.     Edit3: TEdit;
  23.     Edit4: TEdit;
  24.     Edit5: TEdit;
  25.     Table1Name: TStringField;
  26.     Table1Capital: TStringField;
  27.     Table1Continent: TStringField;
  28.     Table1Area: TFloatField;
  29.     Table1Population: TFloatField;
  30.     First: TButton;
  31.     Last: TButton;
  32.     Next: TButton;
  33.     Prior: TButton;
  34.     Insert: TButton;
  35.     Append: TButton;
  36.     Post: TButton;
  37.     Cancel: TButton;
  38.     procedure FormCreate(Sender: TObject);
  39.     procedure FirstClick(Sender: TObject);
  40.     procedure LastClick(Sender: TObject);
  41.     procedure NextClick(Sender: TObject);
  42.     procedure PriorClick(Sender: TObject);
  43.     procedure InsertClick(Sender: TObject);
  44.     procedure AppendClick(Sender: TObject);
  45.     procedure PostClick(Sender: TObject);
  46.     procedure CancelClick(Sender: TObject);
  47.     procedure DataSource1DataChange(Sender: TObject; Field: TField);
  48.     procedure DataSource1UpdateData(Sender: TObject);
  49.     procedure DataSource1StateChange(Sender: TObject);
  50.     procedure Edit1KeyDown(Sender: TObject; var Key: Word;
  51.       Shift: TShiftState);
  52.   private
  53.     { Private declarations }
  54.   public
  55.     { Public declarations }
  56.   end;
  57.  
  58. var
  59.   Form1: TForm1;
  60.   Edits: array[1..5] of TEdit;
  61.  
  62. implementation
  63.  
  64. {$R *.DFM}
  65.  
  66. procedure TForm1.FormCreate(Sender: TObject);
  67. var
  68.   i: Integer;
  69. begin
  70.   for i := 1 to 5 do
  71.     Edits[i] := TEdit(FindComponent('Edit' + IntToStr(i)));
  72.   Table1.Open;
  73. end;
  74.  
  75. procedure TForm1.FirstClick(Sender: TObject);
  76. begin
  77.   Table1.First;
  78. end;
  79.  
  80. procedure TForm1.LastClick(Sender: TObject);
  81. begin
  82.   Table1.Last;
  83. end;
  84.  
  85. procedure TForm1.NextClick(Sender: TObject);
  86. begin
  87.   Table1.Next;
  88. end;
  89.  
  90. procedure TForm1.PriorClick(Sender: TObject);
  91. begin
  92.   Table1.Prior;
  93. end;
  94.  
  95. procedure TForm1.InsertClick(Sender: TObject);
  96. begin
  97.   Table1.Insert;
  98. end;
  99.  
  100. procedure TForm1.AppendClick(Sender: TObject);
  101. begin
  102.   Table1.Append;
  103. end;
  104.  
  105. procedure TForm1.PostClick(Sender: TObject);
  106. begin
  107.   Table1.Post;
  108. end;
  109.  
  110. procedure TForm1.CancelClick(Sender: TObject);
  111. begin
  112.   Table1.Cancel;
  113. end;
  114.  
  115. procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
  116. var
  117.   i: Integer;
  118. begin
  119.   for i := 1 to 5 do
  120.     Edits[i].Text := Table1.Fields[i - 1].AsString;
  121. end;
  122.  
  123. procedure TForm1.DataSource1UpdateData(Sender: TObject);
  124. var
  125.   i: Integer;
  126. begin
  127.   for i := 1 to 5 do
  128.     Table1.Fields[i - 1].AsString := Edits[i].Text;
  129. end;
  130.  
  131. procedure TForm1.DataSource1StateChange(Sender: TObject);
  132. var
  133.   s : String;
  134. begin
  135.   case DataSource1.State of
  136.     dsInactive : s:='Inactive';
  137.     dsBrowse   : s:='Browse';
  138.     dsEdit     : s:='Edit';
  139.     dsInsert   : s:='Insert';
  140.     dsSetKey   : s:='SetKey';
  141.     dsCalcFields : s:='CalcFields';
  142.   end;
  143.   Label6.Caption:=s;
  144. end;
  145.  
  146. procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  147.   Shift: TShiftState);
  148. begin
  149.   if DataSource1.State <> dsEdit then
  150.     Table1.Edit;
  151. end;
  152.  
  153. end.
  154.