Delphi里怎么将DBGrid的数据取出传递到类成员中?

来源:百度知道 编辑:UC知道 时间:2024/06/07 11:33:14
是这样的,比如我定义了一个类叫Base_info ,类成员等就是姓名,性别,年龄,电话...等一些基本个人信息,和数据库里的表的相关内容相对应,然后把这些定义好的类放在一个单元base.pas里。

程序的功能是,在窗体上点击查询按钮将信息在DBGrid里显示出来,然后双击单元格可以进入编辑界面,对某一条基本信息进行编辑。
现在就想知道,怎么把DBGrid里的值取出来传给类成员呢?
我知道可以定义一些变量 如Var text:string;
text:= dbgrid1.DataSource.DataSet.FieldByName('id').AsString;
然后再将值赋给相应的编辑框,
edit1.Text := text1;

但现在要求不这样,要用类成员来传递这些值,具体应该怎么做呢?是不是要用到什么GET方法SET方法呢,我很小白,望各位高手指点!
我大概懂你的意思了了,不过这么一来我的类成员里有几个成员不是就要写几个PROCEDURE?如果还有另一个类,也要同样的操作,那么就得重写一遍?
还有,我定义类的时候没有把成员定义为Private的啊,是不是不写的话就会默认为Private?

你大概是想把值先赋给类的成员变量吧
而且你的成员放在了PRIVATE区不能直接用,那就用属性+函数的形式来访问吧。。不过你的成员变量太多写起来可够多的比如:
Base_info = class
Private
Fname:string;
Fsex:string;
procedure SetName(value:string);
procedure SetSex(value:string);
published
Property name:string; read Fname write SetName;
Property sex:string; read Fsex write SetSex;
end;

procedure Base_info.SetName(value:string);
begin
Fname:=value;
end;
procedure Base_info.SetSex(value:string);
begin
Fsex:=value;
end;

比如你创建一个类的实例Myinfo:=Base_info.create这样你给类变量赋值就直接
Myinfo.name:=dbgrid1.DataSource.DataSet.FieldByName('id').AsString;
Myinfo.Sex:=dbgrid1.DataSource.DataSet.FieldByName('Sex').AsString;

是这个意思吧...