procedure TForm1.FormActivate(Sender: TObject);
begin
adoquery1.Open;
while   not   adoquery1.eof   do   begin      dblistbox1.items.add(adoquery1.fieldbyname('username').asstring);      adoquery1.next;  end;
end;procedure TForm1.FormShow(Sender: TObject);
begin
       //DBListBox1.Field:=ADOQuery1.
end;procedure TForm1.DBListBox1Click(Sender: TObject);
begin
dbedit1.Text :=adoquery1.FieldByName('name').asstring  ;
end;
单击无效!
没变化
为什么?

解决方案 »

  1.   

    procedure TForm1.DBListBox1Click(Sender: TObject); 
    begin 
    dbedit1.Text :=adoquery1.FieldByName('name').asstring  ; 
    end; 
    中设个断定看看代码有没有执行procedure TForm1.FormActivate(Sender: TObject); 
    begin 
      //+++
      DBListBox1.OnClick := DBListBox1Click;//++try
    adoquery1.Open; 
    while   not   adoquery1.eof   do   begin       dblistbox1.items.add(adoquery1.fieldbyname('username').asstring);       adoquery1.next;   end; 
    end; 
      

  2.   

    while   not   adoquery1.eof   do   begin       dblistbox1.items.add(adoquery1.fieldbyname('username').asstring);       adoquery1.next;   end; 你一开始就把adoquery1弄到最后去了,除非象这样写:
    procedure TForm1.DBListBox1Click(Sender: TObject); 
    begin 
    adoquery1.first;
    dbedit1.Text :=adoquery1.FieldByName('name').asstring  ; 
    end; 
      

  3.   

    procedure TForm1.DBListBox1Click(Sender: TObject);  
    begin  
    ///**dbedit1.Text :=adoquery1.FieldByName('name').asstring  ;  
    //换个非数据感知控件试试,可能是感知控件的问题
      edit1.Text :=adoquery1.FieldByName('name').asstring  ;  //~~!!
    end;  
      

  4.   

    procedure TForm1.DBListBox1Click(Sender: TObject);   
    begin   
    ///**dbedit1.Text :=adoquery1.FieldByName('name').asstring  ;   
    //换个非数据感知控件试试,可能是感知控件的问题 
      ShowMessage(adoquery1.FieldByName('name').asstring)  ;  //~~!! 看看有没有显示信息
    end;   
      

  5.   

    你这样写确实不行, 你的数据还没有到DateSet里买呢, 
    你改成这样试一下。procedure TForm1.DBListBox1Click(Sender: TObject); 
    begin 
      //给DBEdit1的DataSet赋值
      DBEdit1.DataSource.DataSet.FieldByName(DBEdit1.DataField).AsString := adoquery1.FieldByName('name').asstring  ; 
    end; 
      

  6.   

    DBEdit直接设置DataField的属性关联字段.
    还有就是你的表里有没有Name字段? 看你上面用的是UserName
      

  7.   

    选择dblistbox1里面的'username'字段 ,使DBEdit的name字段发生变化