有如下记录多条:
姓名       年龄    性别某某1       40      男
某某2       38      女我们可以通过这样的代码:   p:=ListView.Selected.Data ;
   cid:=p^;将用户选择的记录的记录号传给cid,那怎么样能够让记录的某一字段值传给cid 呢?(如:将姓名或年龄或性别传给cid)

解决方案 »

  1.   

    我看你是想用来做节点定位的吧
    实际上方法有很多,这样也是一个方法
    好象你这个cid是个integer的
    比如说我想吧我记录里面的ID传给它你可以这样写
    cid:=adotable1.fieldbyname('id').asinteger;
    这样就可以了当然要取某个记录还要用上循环判断之类的
    也可以用adoquery
    adoquery1.close;
    adoquery1.sql.add('select * from table where uname='某某1'and 条件2...');
    adoquery1.open
    这样就找到了一个很确定的值,可能你的表中这样的记录只有一个
    那么直接就能取出来
    id:=adoquery1.fieldbyname('id').asinteger;
      

  2.   

    procedure TForm1.ADOTable1AfterScroll(DataSet: TDataSet);
    begin
    cid:=adotable1.fieldbyname('id').asinteger;
    end;
      

  3.   

    你的给指针赋值
    有如下记录多条:
    name       age    sex某某1       40      男
    某某2       38      女我们可以通过这样的代码:   p:=ListView.Selected.Data ;
       cid:=p^.name;
      

  4.   

    哦,上面错了
    假如你的record 指针Pinfor//强制转换指针类型我们可以通过这样的代码:   p:=ListView.Selected.Data ;
       cid:=Pinfor(p)^.name;
      

  5.   

    type
      PPerson=^TPerson;
      TPerson=record
         Name:string;
         Sex:string;
         Age:Integer;
      end;var
      P:PPerson;
    begin
      New(P);
      P^.Name:='张三';
      P^.Sex:='人妖';
      P^.Age:=100;
      ListView.Selected.Data:=P;
      ShowMessage(PPerson(ListView.Selected.Data)^.Name) ;
    end;