我动态创建了一组按钮,想在一张图片的上面显示出来,
原代码如下:
procedure Tsales_main.BitBtn1Click(Sender: TObject);
begin
  Speedbutton[fi_button_index]:=TSpeedbutton.create(self);
  Speedbutton[fi_button_index].Parent:=self;
  Speedbutton[fi_button_index].Caption:='heoo' + IntToStr(fi_button_index);
  Speedbutton[fi_button_index].OnClick := SpeedButtonClick;
  Speedbutton[fi_button_index].Left:= ((50 + 50 )* fi_button_index - 1);
  Speedbutton[fi_button_index].Top:=100;
  Speedbutton[fi_button_index].Height:=100;
  Speedbutton[fi_button_index].Width:=50;
  Speedbutton[fi_button_index].show;
  Speedbutton[fi_button_index].BringToFront;
  fi_button_index := fi_button_index + 1;
end;procedure Tsales_main.SpeedButtonClick(Sender : TObject);
begin
   showmessage(TSpeedbutton(Sender).caption );end;但每次创建的按钮都被图片挡住看不见了,
我也加了
  Speedbutton[fi_button_index].BringToFront;
但还是不行,请各位帮帮忙

解决方案 »

  1.   

    应该可以的。好好检查以下。
    image和speedbutton是不是一个Parent呀。
    还有speedbutton的坐标对不对/
      

  2.   

    我的speedbutton的parent是self
    Speedbutton[fi_button_index].Parent:=self;我把self改为Tsales_main,时提示错误,但image是一开始就有的,它的parent 又是什么呢?
      

  3.   

    image的parent是你放image控件的控件,你试试把speedbutton的parent改成那个image,应该可以的,不过坐标要换了,不知道是否满足你的要求
      

  4.   

    就是image的父呀。Speedbutton[fi_button_index].Left:= ((50 + 50 )* fi_button_index - 1);
      Speedbutton[fi_button_index].Top:=100;
    坐标是不是有问题。?
      

  5.   

    哈哈,IMAGE不能做parent,不过我用你的代码试了,没有什么问题,出现在IMAGE的上面
      

  6.   

    试试把SPEEDBUTTON的PARENT设置成IMAGE的PARENT
      

  7.   

    fi_button_index 如果等于0的时候肯定有问题