You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取TStringGrid的值并赋值给TEdit控件

解决TStringGrid选中行后拆分姓名与年龄到TEdit的问题

核心思路

无需获取整行字符串再拆分,直接通过TStringGrid的Cells属性提取对应单元格内容即可——因为你的数据是按列分别存储姓名和年龄的,直接定位单元格就能拿到单独的字段值。

具体实现步骤

  1. 绑定网格的选中事件:在Delphi IDE里双击TStringGrid,进入OnClick或OnSelectCell事件的处理函数。
  2. 提取对应单元格内容:
    • 假设你的TStringGrid中,第0列(索引从0开始)存姓名,第1列存年龄,选中行的索引用StringGrid1.SelTop获取:
      // 把选中行的姓名填入第一个TEdit
      Edit1.Text := StringGrid1.Cells[0, StringGrid1.SelTop];
      // 把选中行的年龄填入第二个TEdit
      Edit2.Text := StringGrid1.Cells[1, StringGrid1.SelTop];
      
  3. 特殊结构适配(如果数据是按行存储):
    如果你的网格是两行多列结构(第一行是所有姓名,第二行是对应年龄),点击姓名单元格时,通过列索引匹配对应的年龄:
    procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
    begin
      // 仅处理点击姓名行(假设ARow=0是姓名行)
      if ARow = 0 then
      begin
        Edit1.Text := StringGrid1.Cells[ACol, 0]; // 获取姓名
        Edit2.Text := StringGrid1.Cells[ACol, 1]; // 获取对应年龄
      end;
    end;
    

注意事项

  • 确认TStringGrid的ColCount和RowCount设置与你的数据结构匹配。
  • 放弃之前拼接整行字符串的方式,直接用Cells[列索引, 行索引]提取,既高效又避免拆分错误。

内容的提问来源于stack exchange,提问作者Marcell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:02:14