ADOQuery2tableid.AsInteger:=TAccounts(PerList.Items.Objects[i]).id;
ADOQuery2.Post;

解决方案 »

  1.   

    字段赋值,看看tacount类的定义
      

  2.   

    TAccounts=class
        Accountid:integer;
        AccountName:string;
        TrueName:string;
       end;
      

  3.   

    PerList.Items.Objects[i]容器中放有TAccounts类,给这个ADOQuery2tableid赋值为PerList第i项的放置的TAccounts对象中的id值。
      

  4.   

    不就是将类的属性的值赋给 DataSet的当前记录的字段并提交.
    DataSet: ADOQuery2 应处于Edit状态.
      

  5.   

    各位大哥解释通俗一点,小弟出学DELPHI,真诚的谢谢各位
      

  6.   

    To  Hovers(飞翔),你上面的代码能编辑吗
    ADOQuery2tableid.AsInteger:=TAccounts(PerList.Items.Objects[i]).id;
    我觉得应该改成ADOQuery2tableid.AsInteger:=TAccounts(PerList.Items.Objects[i]).Accountid
      

  7.   

    procedure TForm1.RzBitBtn3Click(Sender: TObject);
    var i:integer;
    begin
       if PerList.Items.Count>0 then
          begin
          PerList.ItemIndex:=0  ;
             for I:=0 to PerList.Items.Count-1 do
             begin
               ADOQuery2RoleIDs.AsInteger:=TAccounts(rzListbox2.Items.Objects[i]).Accountid;
               ADOQuery2.Post;
               rzListbox2.Items.Objects[i].Free;
             end;
             rzListbox2.Items.Clear;
       end;
    end;
      

  8.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ComCtrls, dxtree, dxdbtree, DB, ADODB, ExtCtrls, RzPanel,
      RzSplit, Grids, DBGrids, StdCtrls, RzLstBox, RzButton;type
       TAccounts=class
        Accountid:integer;
        AccountName:string;
        TrueName:string;
       end;
       TtableID=class
         id:integer;
       end;
      TForm1 = class(TForm)
        RzSplitter1: TRzSplitter;
        dxDBTreeView1: TdxDBTreeView;
        DataSource1: TDataSource;
        ADOTable1: TADOTable;
        ADOConnection1: TADOConnection;
        RzSizePanel1: TRzSizePanel;
        DBGrid1: TDBGrid;
        DataSource2: TDataSource;
        ADOQuery1: TADOQuery;
        ADOQuery1ID: TAutoIncField;
        ADOQuery1AccountName: TWideStringField;
        ADOQuery1Password: TWideStringField;
        ADOQuery1CreateTime: TDateTimeField;
        ADOQuery1Is1: TBooleanField;
        ADOQuery1Is2: TBooleanField;
        ADOQuery1Is3: TBooleanField;
        ADOQuery1IsValid: TBooleanField;
        ADOQuery1UpdateTime: TDateTimeField;
        ADOQuery1TrueName: TWideStringField;
        ADOQuery1Gender: TWordField;
        ADOQuery1Title: TWideStringField;
        ADOQuery1Birthday: TDateTimeField;
        ADOQuery1IsMarriage: TBooleanField;
        ADOQuery1Nation: TWideStringField;
        ADOQuery1NativePlace: TWideStringField;
        ADOQuery1Tel: TWideStringField;
        ADOQuery1Address: TWideStringField;
        ADOQuery1Education: TWideStringField;
        ADOQuery1Des: TMemoField;
        ADOQuery1HomeTel: TWideStringField;
        ADOQuery1Mob: TWideStringField;
        ADOQuery1Email: TWideStringField;
        ADOQuery1LoginTime: TDateTimeField;
        ADOQuery1LogoutTime: TDateTimeField;
        ADOQuery1LockTime: TDateTimeField;
        ADOQuery1LoginIP: TStringField;
        ADOQuery1LockMsg: TWideStringField;
        ADOQuery1MsgReadTime: TDateTimeField;
        ADOQuery1LastResponseTime: TDateTimeField;
        ADOQuery1OnlineState: TWordField;
        ADOQuery1CharacterID: TAutoIncField;
        ADOQuery1RoleIDs: TWideStringField;
        RzListBox1: TRzListBox;
        DBGrid2: TDBGrid;
        RzListBox2: TRzListBox;
        DataSource3: TDataSource;
        ADOQuery2: TADOQuery;
        ADOQuery2ID: TAutoIncField;
        ADOQuery2AccountName: TWideStringField;
        ADOQuery2Password: TWideStringField;
        ADOQuery2CreateTime: TDateTimeField;
        ADOQuery2Is1: TBooleanField;
        ADOQuery2Is2: TBooleanField;
        ADOQuery2Is3: TBooleanField;
        ADOQuery2IsValid: TBooleanField;
        ADOQuery2UpdateTime: TDateTimeField;
        ADOQuery2TrueName: TWideStringField;
        ADOQuery2Gender: TWordField;
        ADOQuery2Title: TWideStringField;
        ADOQuery2Birthday: TDateTimeField;
        ADOQuery2IsMarriage: TBooleanField;
        ADOQuery2Nation: TWideStringField;
        ADOQuery2NativePlace: TWideStringField;
        ADOQuery2Tel: TWideStringField;
        ADOQuery2Address: TWideStringField;
        ADOQuery2Education: TWideStringField;
        ADOQuery2Des: TMemoField;
        ADOQuery2HomeTel: TWideStringField;
        ADOQuery2Mob: TWideStringField;
        ADOQuery2Email: TWideStringField;
        ADOQuery2LoginTime: TDateTimeField;
        ADOQuery2LogoutTime: TDateTimeField;
        ADOQuery2LockTime: TDateTimeField;
        ADOQuery2LoginIP: TStringField;
        ADOQuery2LockMsg: TWideStringField;
        ADOQuery2MsgReadTime: TDateTimeField;
        ADOQuery2LastResponseTime: TDateTimeField;
        ADOQuery2OnlineState: TWordField;
        ADOQuery2CharacterID: TAutoIncField;
        ADOQuery2RoleIDs: TWideStringField;
        RzBitBtn3: TRzBitBtn;
        RzBitBtn4: TRzBitBtn;
        procedure DBGrid2DblClick(Sender: TObject);
        procedure DBGrid1DblClick(Sender: TObject);
        procedure RzListBox1DblClick(Sender: TObject);
        procedure RzBitBtn1Click(Sender: TObject);
        procedure RzBitBtn3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      Faccount:TAccounts;
    implementation{$R *.dfm}procedure TForm1.DBGrid1DblClick(Sender: TObject);
    begin
        FAccount:=TAccounts.Create;
        FAccount.Accountid:=AdoQuery1id.AsInteger;
        FAccount.AccountName:=AdoQuery1Accountname.AsString;
        FAccount.TrueName:=ADoQuery1TrueName.AsString;
        if rzListBox1.Items.IndexOf(ADoQuery1TrueName.AsString)<0 then
        rzListBox1.Items.AddObject(adoquery1truename.AsString,FAccount);
        FAccount.Free;
    end;procedure TForm1.DBGrid2DblClick(Sender: TObject);
    begin
        FAccount:=TAccounts.Create;
        FAccount.Accountid:=AdoQuery2id.AsInteger;
        FAccount.AccountName:=AdoQuery2Accountname.AsString;
        FAccount.TrueName:=ADoQuery2TrueName.AsString;
        if rzListBox2.Items.IndexOf(ADoQuery2TrueName.AsString)<0 then
        rzListBox2.Items.AddObject(adoquery2truename.AsString,FAccount);
        FAccount.Free;
    end;procedure TForm1.RzListBox1DblClick(Sender: TObject);
    begin
    rzlistbox1.Items.Clear;
    end;procedure TForm1.RzBitBtn1Click(Sender: TObject);
    var aID:TTableID;
    begin
    if ADOQuery2.RecordCount <>0 then
    begin
    ADOQuery2.First;
    while not ADOQuery2.Eof  do
       begin
         AID:=TTableID.Create;
         AID.id:=ADOQuery2Id.AsInteger;
         if rzListbox2.Items.IndexOf(ADOQuery2TrueName.AsString)<0 then
         rzListbox2.Items.AddObject(ADOQuery2TrueName.AsString,AID) ;
         ADOQuery2.Next;
       end;
    end
    end;
    procedure TForm1.RzBitBtn3Click(Sender: TObject);
    var i:integer;
    begin
       if PerList.Items.Count>0 then
          begin
          PerList.ItemIndex:=0  ;
             for I:=0 to PerList.Items.Count-1 do
             begin
               ADOQuery2RoleIDs.AsInteger:=TAccounts(rzListbox2.Items.Objects[i]).Accountid;
               ADOQuery2.Post;
               rzListbox2.Items.Objects[i].Free;
             end;
             rzListbox2.Items.Clear;
       end;
    end;end.
      

  9.   

    取得PerList的第i项的id属性的值,并赋值给 ADOQuery2 的当前记录的tableid字段.
    PerList应该时一个类似于TreeView或ListView或类似的控件对象吧!
      

  10.   

    PerList 这个是三方控件,,就和 listbox 一样