如何点击用户ID/ID Održ/姓名时在另一表单显示其姓名(Delphi+MySQL)
Delphi + MySQL 实现点击列表行在另一表单显示用户信息
1. 数据库基础准备
确保你的用户表(假设表名为users)包含id、id_odrz、first_name、last_name这些字段,先编写基础查询SQL用于加载用户列表:
SELECT id, id_odrz, first_name, last_name FROM users;
2. Delphi界面组件配置
- 主表单:使用
FDQuery(或TADOQuery,根据你用的组件库)连接MySQL,将其与TDBGrid绑定,用于展示用户列表;同时配置FDConnection组件,填写MySQL的地址、用户名、密码、数据库名,确保连接正常。 - 子表单:添加两个
TLabel(或TEdit),命名为lblFirstName、lblLastName,用于显示选中用户的名字和姓氏。
3. 点击事件核心逻辑
在主表单TDBGrid的OnCellClick事件中编写代码,实现点击任意列时传递用户信息到子表单:
procedure TMainForm.DBGrid1CellClick(Column: TColumn); var UserInfoForm: TUserInfoForm; begin // 判断当前是否有选中的有效数据行 if not FDQuery1.Active or FDQuery1.IsEmpty then Exit; // 实例化子表单(若已存在则直接更新内容) if not Assigned(UserInfoForm) then UserInfoForm := TUserInfoForm.Create(nil); // 从当前选中行提取名字和姓氏,赋值给子表单控件 UserInfoForm.lblFirstName.Caption := FDQuery1.FieldByName('first_name').AsString; UserInfoForm.lblLastName.Caption := FDQuery1.FieldByName('last_name').AsString; UserInfoForm.Show; end;
4. 额外注意事项
- 主表单的
FDQuery需设置SQL属性为第一步的查询语句,在表单启动时调用FDQuery1.Open加载数据。 - 如果涉及两个数据库表的关联查询(比如用户表和其他关联表),可修改SQL为关联查询形式,示例:
SELECT u.id, u.id_odrz, u.first_name, u.last_name FROM users u JOIN 关联表名 ON u.id = 关联表名.user_id;
内容的提问来源于stack exchange,提问作者Notz
相关产品推荐
相关产品推荐

