?? unitteacheredit.pas
字號:
unit UnitTeacherEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ComCtrls, DB, ADODB;
type
TfrmTeacherEdit = class(TForm)
dbg: TDBGrid;
GroupBox1: TGroupBox;
Label1: TLabel;
edtName: TEdit;
Label2: TLabel;
dtpBirth: TDateTimePicker;
Label3: TLabel;
cmbSex: TComboBox;
Label4: TLabel;
edtHome: TEdit;
Label5: TLabel;
edtDept: TEdit;
btnEdit: TButton;
btnDel: TButton;
btnClose: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure dbgCellClick(Column: TColumn);
procedure btnCloseClick(Sender: TObject);
procedure edtNameChange(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
private
{ Private declarations }
ds: TDataSource;
qry: TADOQuery;
procedure FreshDBGrid;
procedure SetEnable(b: Boolean);
public
{ Public declarations }
end;
var
frmTeacherEdit: TfrmTeacherEdit;
implementation
uses UnitData;
{$R *.dfm}
procedure TfrmTeacherEdit.FreshDBGrid;
var
query: TADOQuery;
begin
qry.Close;
qry.SQL.Clear;
//重命名以便room表使用
qry.SQL.Add('select id as 記錄號,name as 姓名 from TEACHER');
qry.Open; // 執行
SetEnable(not qry.Eof); //設置變量
if not qry.Eof then begin
query := TADOQuery.Create(self); //創建窗體
query.Connection := data.adoc; //與數據庫連接
query.Close;
query.SQL.Clear;
query.SQL.Add('select * from TEACHER where id=' + qry.FieldByName('記錄號').AsString);
query.Open;
edtName.Text := query.FieldByName('name').AsString;
dtpBirth.DateTime := query.FieldByName('birth').AsDateTime;
cmbSex.ItemIndex := query.FieldByName('sex').AsInteger;
edtHome.Text := query.FieldByName('home').AsString;
edtDept.Text := query.FieldByName('dept').AsString;
query.Free;
end;
end;
//當管理的教師為空時教師基本信息和修改刪除按鈕不能使用
procedure TfrmTeacherEdit.SetEnable(b: Boolean);
//傳變量值給各個控件的顯示屬性
begin
btnEdit.Enabled := b;
btnDel.Enabled := b;
edtName.Enabled := b;
dtpBirth.Enabled := b;
cmbSex.Enabled := b;
edtHome.Enabled := b;
edtDept.Enabled := b;
end;
//創建窗體本身
procedure TfrmTeacherEdit.FormCreate(Sender: TObject);
begin
qry := TADOQuery.Create(self); //調用數據庫
ds := TDataSource.Create(self);
qry.Connection := data.adoc;
ds.DataSet := qry;
dbg.DataSource := ds;
end;
procedure TfrmTeacherEdit.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
qry.Free;
ds.Free;
end;
procedure TfrmTeacherEdit.FormShow(Sender: TObject);
begin
FreshDBGrid;
end;
//點擊“修改”后表格進行的處理
procedure TfrmTeacherEdit.dbgCellClick(Column: TColumn);
var
query: TADOQuery;
begin
SetEnable(not qry.Eof);
if not qry.Eof then begin
query := TADOQuery.Create(self);
query.Connection := data.adoc;
query.Close;
query.SQL.Clear;
query.SQL.Add('select * from TEACHER where id=' + qry.FieldByName('記錄號').AsString); //在表中顯示id和名字兩個字段
query.Open;
edtName.Text := query.FieldByName('name').AsString;
dtpBirth.DateTime := query.FieldByName('birth').AsDateTime;
cmbSex.ItemIndex := query.FieldByName('sex').AsInteger;
edtHome.Text := query.FieldByName('home').AsString;
edtDept.Text := query.FieldByName('dept').AsString;
query.Free;
end;
end;
procedure TfrmTeacherEdit.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmTeacherEdit.edtNameChange(Sender: TObject);
begin
btnEdit.Enabled := (edtName.Text <> '') and not qry.Eof;
end;
//點擊“修改”按鈕
procedure TfrmTeacherEdit.btnEditClick(Sender: TObject);
var
query: TADOQuery;
begin
query := TADOQuery.Create(self);
query.Connection := data.adoc;
query.Close;
query.SQL.Clear;
query.SQL.Add('update TEACHER set name=''' + edtName.Text + ''',birth=''' + DateToStr(dtpBirth.DateTime) + ''',sex=' + inttostr(cmbSex.ItemIndex) + ',home=''' + edtHome.Text + ''',dept=''' + edtDept.Text + ''' where id=' + qry.FieldByName('記錄號').AsString);
query.ExecSQL;
query.Free;
FreshDBGrid;
end;
//點擊“刪除“按鈕
procedure TfrmTeacherEdit.btnDelClick(Sender: TObject);
var
query: TADOQuery;
begin
if application.MessageBox(PAnsiChar('真的要刪除嗎?'), PAnsiChar('確認刪除'), MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES then begin
query := TADOQuery.Create(self);
query.Connection := data.adoc;
query.Close;
query.SQL.Clear;
query.SQL.Add('delete * from TEACHER where id=' + qry.FieldByName('記錄號').AsString);
query.ExecSQL;
query.Free;
FreshDBGrid;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -