Delphi5数据控制组件

效果图

在这里插入图片描述

参考文章

数据控制组件实验

数据库设计

CREATE TABLE RenYuanDangAn  
(  
    Gh VARCHAR(10) NOT NULL PRIMARY KEY,  -- 工号,假设为字符串类型,长度根据实际情况调整  
    Xm VARCHAR(20) NOT NULL,             -- 姓名,同样为字符串类型  
    Xb VARCHAR(6) NOT NULL,        -- 性别 
    Csrq datetime NOT NULL,                   -- 出生日期,使用datetime类型  
    Hf BIT,                      -- 婚否,使用BIT类型,0为否,1为是  
    Zc VARCHAR(20),                       -- 职称,字符串类型  
    Gz DECIMAL(10, 2) NOT NULL,            -- 工资,使用DECIMAL类型,10位数字,其中2位为小数  
    Jl VARCHAR(MAX),                      -- 简历,使用NVARCHAR(MAX)以存储大量文本  
    Zp VARBINARY(MAX)                      -- 照片,使用VARBINARY(MAX)以存储二进制数据  
);

窗体

在这里插入图片描述

状态栏

在这里插入图片描述

{状态栏}
procedure TForm1.DataSource1StateChange(Sender: TObject);
begin
  case Table1.State of
    dsInsert:
      StatusBar1.Panels[0].Text := '数据表处于插入状态';
    dsEdit:
      StatusBar1.Panels[0].Text := '数据表处于编辑状态';
    dsBrowse:
      StatusBar1.Panels[0].Text := '数据表处于浏览状态';
    dsSetKey:
      StatusBar1.Panels[0].Text := '数据表处于查询状态';
  else
    StatusBar1.Panels[0].Text := '未知状态';
  end;
end;

{状态栏时间}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  StatusBar1.Panels[1].Text:=TimeToStr(Time);
end;

新增

{新增:清空编辑框,只能保存或者取消}
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Table1.CanModify then
  begin
    Table1.Append;  // 准备添加新记录
    GroupBox1.Enabled:=true;
    Table1.FieldByName('Hf').Value:=False;
    DBNavigator1.Enabled:=False;
    Button1.Enabled:=False;
    Button2.Enabled:=False;
    Button3.Enabled:=False;
    Button4.Enabled:=False;
    Button5.Enabled:=False;
    Button8.Enabled:=False;
  end
  else
    ShowMessage('当前数据表不能新增记录');
end;

删除

{删除:选中表格中某一行进行删除}
procedure TForm1.Button2Click(Sender: TObject);
begin
  if MessageDlg('确实要删除当前记录吗?',mtInformation,[mbOK,mbCancel],0)=mrOK then
    Table1.Delete;
end;

修改

将DBGrid控件放置在GroupBox控件外,点击DBGrid能选中整行并进行展示,但是浏览时不能修改信息。

在这里插入图片描述

{修改:选中某一行进行编辑}
procedure TForm1.Button3Click(Sender: TObject);
begin
  if Table1.CanModify then
  begin
    Table1.Edit;
    GroupBox1.Enabled:=true;
    DBNavigator1.Enabled:=False;
    Button1.Enabled:=False;
    Button2.Enabled:=False;
    Button3.Enabled:=False;
    Button4.Enabled:=False;
    Button5.Enabled:=False;
    Button8.Enabled:=False;
  end
  else
    ShowMessage('当前数据表不能被修改');
end;

查询

新建一个unit2.pas,添加1个Label、1个Edit、2个BitBtn。

在这里插入图片描述

在 Delphi 中,TBitBtn 组件是一个按钮控件,它继承自 TButton,但提供了更多样式选项,包括通过其 Kind 属性来改变按钮的显示样式。TBitBtnKind 属性用于指定按钮的样式,这个属性是 TBitBtnKind 类型的枚举,它定义了多种不同的按钮样式。TBitBtnKind 枚举可能包含以下一些值:

  • bkCustom:自定义样式,允许你通过其他属性(如 GlyphNumGlyphsLayout 等)来完全自定义按钮的外观。
  • bkStandard:标准样式,按钮显示为标准 Windows 按钮的外观。
  • bkHelp:帮助样式,按钮通常显示为带有问号图标的样式,用于表示帮助或上下文帮助。
  • bkOKbkCancelbkYesbkNobkClose 等:这些样式提供了预定义的图标和样式,用于常见的对话框操作,如“确定”、“取消”、“是”、“否”和“关闭”。

在这里插入图片描述

保存

{保存}
procedure TForm1.Button6Click(Sender: TObject);
begin
  if Table1.State=dsBrowse then
    ShowMessage('无需保存')
  else
  begin
    Table1.Post;
    GroupBox1.Enabled:=False;
    DBNavigator1.Enabled:=True;
    Button1.Enabled:=True;
    Button2.Enabled:=True;
    Button3.Enabled:=True;
    Button4.Enabled:=True;
    Button5.Enabled:=True;
    Button8.Enabled:=True;
  end;
end;

取消

{取消:取消编辑、新增操作}
procedure TForm1.Button7Click(Sender: TObject);
begin
  if Table1.State=dsBrowse then
    ShowMessage('无需取消')
  else
  begin
    Table1.Cancel;
    GroupBox1.Enabled:=False;
    DBNavigator1.Enabled:=True;
    Button1.Enabled:=True;
    Button2.Enabled:=True;
    Button3.Enabled:=True;
    Button4.Enabled:=True;
    Button5.Enabled:=True;
    Button8.Enabled:=True;
  end;
end;

完整代码

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值