比如imagelist之类的组件,在运行期显示虚框,由用户导入图片到虚框里面,宽高和比例都设定好的。非要自己画线才行吗?怎么实现啊!

解决方案 »

  1.   

    已经告诉你参考TImage.Paint了procedure TImage.Paint;
    var
      Save: Boolean;
    begin
      if csDesigning in ComponentState then
    with inherited Canvas do
    begin
              // 如果是设计期,就画虚框
      Pen.Style := psDash;
      Brush.Style := bsClear;
      Rectangle(0, 0, Width, Height);
    end;
      Save := FDrawing;
      FDrawing := True;
      try
    with inherited Canvas do
      StretchDraw(DestRect, Picture.Graphic);
      finally
    FDrawing := Save;
      end;
    end;
      

  2.   

    如果要运行期的话,去掉这个判断“if csDesigning in ComponentState then”