To Hovers(飞翔),你上面的代码能编辑吗 ADOQuery2tableid.AsInteger:=TAccounts(PerList.Items.Objects[i]).id; 我觉得应该改成ADOQuery2tableid.AsInteger:=TAccounts(PerList.Items.Objects[i]).Accountid
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;
Accountid:integer;
AccountName:string;
TrueName:string;
end;
DataSet: ADOQuery2 应处于Edit状态.
ADOQuery2tableid.AsInteger:=TAccounts(PerList.Items.Objects[i]).id;
我觉得应该改成ADOQuery2tableid.AsInteger:=TAccounts(PerList.Items.Objects[i]).Accountid
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;
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.
PerList应该时一个类似于TreeView或ListView或类似的控件对象吧!