我的一张表里有:序列号,通知标题,通知内容。
我现在想在我的form1中把我数据库里的每一个通知标题读成label的形式。然后点击几label显示这个标题的内容。
eg:数据库字段:number  title  context 
                 1      wo      aaaa
                 2      ni      bbbb
                 3      ta      cccc
然后我的form1打开后上面显示是:  wo 
                                ni
                                ta 
当我点击wo时,显示aaaa,点击ni 时显示bbbb,点击ta 时显示cccc.
就是这样的了。谢谢您。如果内容很多。留下你的qq或e-mail。我回与你联系的。
分不是问题。不够我再加。

解决方案 »

  1.   


    with query1 do
    begn
    close;
    sql.clear;
    sql.add('select context from eg where title='''+label1.caption+'''');
    open;
    label2.caption:=fields[0].asstring;
    end;
      

  2.   

    但是,我是不知道我的通知是有几条的。所以我的label是在打开的时候才知道的有几个。所以要动态的添加上去的啊
      

  3.   

    你的理解是错的。我的form1上是什么也没有的啊。只是在打开的时候才动态的添加上去的label啊。而且添加的label数是与我的数据库里的字段个数相同啊
      

  4.   

    动态创建
    var
      i: integer;
      arryTitleLab: array of TLabel;
     
    SetLength(arryTitleLab,Rcordcount);//--Rcordcount:Query的查询结果for i:= 0 to RecordCount -1 do
    begin
      //---创建arryTitleLab[i](摆放,字体等的设置)
      //--- 设置OnClick事件。(点击显示内容)
    end;//--程序的最后释放arryTitleLab.
      

  5.   

    是的是的,就是这样的。
    但是请你把“创建arryTitleLab[i](摆放,字体等的设置)”和“设置OnClick事件。”帮我写一下还吗?
    我不会写的就是这些啊。
    谢谢你了。
    还有,能不能留下QQ号。我和你的交谈更近一点。
      

  6.   

    //-- 创建
    SetLength(arryTitleLab,Rcordcount);
    for i:= 0 to RecordCount -1 do
    begin
      arryTitleLab[i]:= TLabel.create(Application);
      arryTitleLab[i].parent:= Form1;//---place to show 
      with arryTitleLab[i] do
      begin
        Caption:=XXXX;
        Left:= XXXX;
        Font.name:= XXX;
        ...
        ...
      end;
    end;
      

  7.   

    procedure TForm1.Label1Click(Sender: TObject);//--〉ClickEvent;
    begin
      if sender is Tlabel then
        (Sender as TLabel).Caption:= ' I was Clicked!';
    end;
    //--〉将你要显示的操作换到上面;
    //--〉然后赋值到创建的arryTitleLab[i].OnClick