用Ai来完成一个小小的功能,迭代20版都没有实现-Delphi10+access+Ehlib控件

作者: koic 分类: 视频教程 发布时间: 2025-06-06 18:09

使用了chatgpt+copilot+DeepSeek 三个Ai的免费额度来尝试实现以下的功能:

使用delphi10.4.2+access+EhLib+DevExpress+FastReport 制作一个类似图示的窗体,有好多输入框;其中有的输入框内部有个按钮,在输入框内输入内容再点击按钮可以弹出一个下拉或者窗体检索指定的数据表,从数据表选择条目可以录入输入框。

chatgpt给出的方案

你提供的截图展示的是一个典型的 数据录入窗体,带有如下功能:

  • 多个输入框

  • 某些输入框右侧有一个小按钮(通常用于弹出下拉列表或弹出窗口进行数据选择)

  • 点击按钮后,可以从数据表中检索、选择记录

  • 选择后自动填充输入框内容

你希望用 Delphi 10.4.2 + Access + EhLib + DevExpress + FastReport 实现类似功能。下面是一个完整的思路与示例:


💡 功能实现结构

1. 基础组件

  • 使用 TForm 创建窗体

  • 使用 TDBEdit / TEdit / TDBComboBox / TButtonedEdit 显示输入框

  • 使用 TButton 或 DevExpress 的 TcxButtonEdit 实现右侧按钮

  • 使用 EhLib 的 TDBGridEh + TDataSource + TADOQuery/TAdoTable 显示下拉或弹窗列表

  • 使用 TADOConnection 连接 Access 数据库


🧩 示例实现(TButtonedEdit + 弹出选择窗口)

数据结构(假设你要选择药品分类)

-- Access 表结构示例
CREATE TABLE 药品分类 (
  ID AUTOINCREMENT PRIMARY KEY,
  分类名称 TEXT(100),
  拼音码 TEXT(20)
);

主窗体设计

  • 放一个 TButtonedEdit(或 DevExpress 的 TcxButtonEdit),命名为 edtCategory

  • 放一个按钮 btnSelectCategory

弹出窗口设计(frmSelectCategory)

  • 一个 TDBGridEh

  • 一个查询组件 ADOQuery1(如:SELECT * FROM 药品分类 WHERE 分类名称 LIKE :param

  • 一个按钮【确定】用来将选中的值返回主窗体


🔧 代码示例

procedure TFormMain.btnSelectCategoryClick(Sender: TObject);
begin
  with TfrmSelectCategory.Create(Self) do
  try
    if ShowModal = mrOk then
      edtCategory.Text := SelectedCategoryName;  // SelectedCategoryName 是从选择窗体传出的变量
  finally
    Free;
  end;
end;

选择窗体关键代码

procedure TfrmSelectCategory.FormShow(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Text := 'SELECT * FROM 药品分类';
  ADOQuery1.Open;
end;

procedure TfrmSelectCategory.btnOKClick(Sender: TObject);
begin
  if not ADOQuery1.IsEmpty then
  begin
    SelectedCategoryName := ADOQuery1.FieldByName('分类名称').AsString;
    ModalResult := mrOk;
  end;
end;

SelectedCategoryName 可以是 public 变量或通过 property 暴露。


✅ 附加建议

功能 组件推荐
搜索过滤 TEdit + OnChange + SQL LIKE
可拖动列/排序 TDBGridEh 非常强大
多字段模糊匹配 SQL 拼接 + 参数
结果分页 Access 不支持 LIMIT,可使用分页逻辑
快速预览报表 FastReport

然后让chatgpt帮忙生成了一套源码

打包下载完成跑不起来,然后当天的额度用完了

接着去使用了GitHub Copilot Free

https://github.com/copilot/share/88165396-43c0-80d0-9053-1408c05e6072

 

发表回复