Panel没有Canvas属性,如果要在Panel被Click时在边框上画个长方形的框框代表选中,应该如何做?

解决方案 »

  1.   

    Panel上+Image
    那就可以了http://lysoft.7u7.net
      

  2.   

    +Image?最好不要加直接画不行吗?
      

  3.   

    procedure TForm1.Panel1Click(Sender: TObject);
    begin
      Canvas.Pen.Width:=5;
      with Canvas do
        with panel1.BoundsRect do begin
          MoveTo(Left, Top);
          LineTo(Right, Top);
          LineTo(Right, Bottom);
          LineTo(Left, Bottom);
          LineTo(Left, Top);
        end;
    end;
      

  4.   

    这个是靠Form的Canvas来画的,有没有方法让Panel自己来画
      

  5.   

    只有自己写控件啦
    加个FCanvas:TCanvas;
    这个我也不会啦 帮你顶
      

  6.   


    var
      tmpCanvas: TCanvas;
    begin
      tmpCanvas := TCanvas.Create;
      tmpCanvas.Handle := GetDC(Panel1.Handle);
      tmpCanvas.MoveTo(1,1);
      tmpCanvas.LineTo(Panel1.Width - 1, 1);
      tmpCanvas.LineTo(Panel1.Width - 1, Panel1.Height - 1);
      tmpCanvas.LineTo(1, Panel1.Height - 1);
      tmpCanvas.LineTo(1, 1);
      tmpCanvas.Destroy;
    end;不过在窗体刷新的时候记得重画哟