NonAwF.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:5k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit NonAwF;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   DBTables, DB, StdCtrls, Grids, DBGrids, ComCtrls, DBActns, ActnList,
  6.   Mask, DBCtrls;
  7. type
  8.   TForm1 = class(TForm)
  9.     Table1: TTable;
  10.     EditName: TEdit;
  11.     Table1Name: TStringField;
  12.     Table1Capital: TStringField;
  13.     Table1Continent: TStringField;
  14.     Table1Area: TFloatField;
  15.     Table1Population: TFloatField;
  16.     EditCapital: TEdit;
  17.     EditPopulation: TEdit;
  18.     EditArea: TEdit;
  19.     Label1: TLabel;
  20.     Label2: TLabel;
  21.     Label3: TLabel;
  22.     Label4: TLabel;
  23.     Label5: TLabel;
  24.     ComboContinent: TComboBox;
  25.     Button1: TButton;
  26.     Button2: TButton;
  27.     StatusBar1: TStatusBar;
  28.     Button3: TButton;
  29.     Button4: TButton;
  30.     Button5: TButton;
  31.     ActionList1: TActionList;
  32.     DBEdit1: TDBEdit;
  33.     ActionNext: TAction;
  34.     ActionPrior: TAction;
  35.     ActionInsert: TAction;
  36.     ActionPost: TAction;
  37.     ActionCancel: TAction;
  38.     DataSource1: TDataSource;
  39.     procedure DataSource1DataChange(Sender: TObject; Field: TField);
  40.     procedure Table1BeforePost(DataSet: TDataSet);
  41.     procedure Table1AfterInsert(DataSet: TDataSet);
  42.     procedure EditKeyPress(Sender: TObject; var Key: Char);
  43.     procedure ComboContinentDropDown(Sender: TObject);
  44.     procedure DataSource1StateChange(Sender: TObject);
  45.     procedure EditNameExit(Sender: TObject);
  46.     procedure EditCapitalExit(Sender: TObject);
  47.     procedure ComboContinentExit(Sender: TObject);
  48.     procedure EditPopulationExit(Sender: TObject);
  49.     procedure EditAreaExit(Sender: TObject);
  50.     procedure ActionCancelExecute(Sender: TObject);
  51.     procedure ActionPriorExecute(Sender: TObject);
  52.     procedure ActionInsertExecute(Sender: TObject);
  53.     procedure ActionPostExecute(Sender: TObject);
  54.     procedure ActionNextExecute(Sender: TObject);
  55.     procedure ActionNextUpdate(Sender: TObject);
  56.     procedure ActionPriorUpdate(Sender: TObject);
  57.     procedure ActionInsertUpdate(Sender: TObject);
  58.     procedure ActionPostUpdate(Sender: TObject);
  59.     procedure ActionCancelUpdate(Sender: TObject);
  60.   private
  61.     { Private declarations }
  62.   public
  63.     { Public declarations }
  64.   end;
  65. var
  66.   Form1: TForm1;
  67. implementation
  68. {$R *.DFM}
  69. procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
  70. begin
  71.   EditName.Text := Table1Name.AsString;
  72.   EditCapital.Text := Table1Capital.AsString;
  73.   ComboContinent.Text := Table1Continent.AsString;
  74.   EditArea.Text := Table1Area.AsString;
  75.   EditPopulation.Text := Table1Population.AsString;
  76. end;
  77. procedure TForm1.Table1BeforePost(DataSet: TDataSet);
  78. begin
  79.   if Table1Area.Value < 100 then
  80.     raise Exception.Create ('Area too small');
  81. end;
  82. procedure TForm1.Table1AfterInsert(DataSet: TDataSet);
  83. begin
  84.   Table1Continent.Value := 'Asia'; 
  85. end;
  86. procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
  87. begin
  88.   if not (Table1.State in [dsEdit, dsInsert]) then
  89.     Table1.Edit;
  90. end;
  91. procedure TForm1.ComboContinentDropDown(Sender: TObject);
  92. begin
  93.   if not (Table1.State in [dsEdit, dsInsert]) then
  94.     Table1.Edit;
  95. end;
  96. procedure TForm1.DataSource1StateChange(Sender: TObject);
  97. var
  98.   strStatus: string;
  99. begin
  100.   case Table1.State of
  101.     dsBrowse: strStatus := 'Browse';
  102.     dsEdit: strStatus := 'Edit';
  103.     dsInsert: strStatus := 'Insert';
  104.   else
  105.     strStatus := 'Other state';
  106.   end;
  107.   StatusBar1.SimpleText := strStatus;
  108. end;
  109. procedure TForm1.EditNameExit(Sender: TObject);
  110. begin
  111.   if Table1.State in [dsEdit, dsInsert] then
  112.     if EditName.Text <> '' then
  113.       Table1Name.AsString := EditName.Text
  114.     else
  115.     begin
  116.       EditName.SetFocus;
  117.       raise Exception.Create ('Undefined Country');
  118.     end;
  119. end;
  120. procedure TForm1.EditCapitalExit(Sender: TObject);
  121. begin
  122.   if Table1.State in [dsEdit, dsInsert] then
  123.     Table1Capital.AsString := EditCapital.Text;
  124. end;
  125. procedure TForm1.ComboContinentExit(Sender: TObject);
  126. begin
  127.   if Table1.State in [dsEdit, dsInsert] then
  128.     Table1Continent.AsString := ComboContinent.Text;
  129. end;
  130. procedure TForm1.EditPopulationExit(Sender: TObject);
  131. begin
  132.   if Table1.State in [dsEdit, dsInsert] then
  133.     Table1Population.AsString := EditPopulation.Text;
  134. end;
  135. procedure TForm1.EditAreaExit(Sender: TObject);
  136. begin
  137.   if Table1.State in [dsEdit, dsInsert] then
  138.     Table1Area.AsString := EditArea.Text;
  139. end;
  140. procedure TForm1.ActionCancelExecute(Sender: TObject);
  141. begin
  142.   Table1.Cancel;
  143. end;
  144. procedure TForm1.ActionPriorExecute(Sender: TObject);
  145. begin
  146.   Table1.Prior
  147. end;
  148. procedure TForm1.ActionInsertExecute(Sender: TObject);
  149. begin
  150.   Table1.Insert;
  151. end;
  152. procedure TForm1.ActionPostExecute(Sender: TObject);
  153. begin
  154.   Table1.Post;
  155. end;
  156. procedure TForm1.ActionNextExecute(Sender: TObject);
  157. begin
  158.   Table1.Next;
  159. end;
  160. procedure TForm1.ActionNextUpdate(Sender: TObject);
  161. begin
  162.   ActionNext.Enabled := not Table1.EOF; 
  163. end;
  164. procedure TForm1.ActionPriorUpdate(Sender: TObject);
  165. begin
  166.   ActionPrior.Enabled := not Table1.BOF;
  167. end;
  168. procedure TForm1.ActionInsertUpdate(Sender: TObject);
  169. begin
  170.   ActionInsert.Enabled := Table1.State = dsBrowse;
  171. end;
  172. procedure TForm1.ActionPostUpdate(Sender: TObject);
  173. begin
  174.   ActionPost.Enabled := Table1.State in [dsEdit, dsInsert];
  175. end;
  176. procedure TForm1.ActionCancelUpdate(Sender: TObject);
  177. begin
  178.   ActionCancel.Enabled := Table1.State in [dsEdit, dsInsert];
  179. end;
  180. end.