一个方法就是Uses一个Grids单元
然后TDrawGrid(Panel1).Canvas
然后你就画吧

解决方案 »

  1.   

    不好刚才又遇到一个问题,写在OnFormShow中,  显示不出来, 要写在哪个事件中呢?
      或者有啥方法,   能够解决这个问题
      

  2.   

    这个很费劲那,我也不太清楚,哈哈
    分不好拿阿,我先试试,不过我觉得正宗的做法应该从TCustomPanel继承
    建立个组件,然后重载Paint方法
      

  3.   

    我刚才试了一下,到是能行,不过这样我觉得不太好
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Grids, ExtCtrls;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        OldWndProc: TWndMethod;
        procedure MyMessage(var Message: TMessage);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MyMessage(var Message: TMessage);
    begin
      OldWndProc(Message);
      if Message.Msg = WM_PAINT then
      begin
        TDrawGrid(Panel1).Canvas.MoveTo(2, 2);
        TDrawGrid(Panel1).Canvas.LineTo(20, 20);
        TDrawGrid(Panel1).Canvas.TextOut(10, 10, 'gyb'); 
      end;  
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      OldWndProc := Panel1.WindowProc;
      Panel1.WindowProc := MyMessage;
    end;end.
      

  4.   

    procedure TForm1.MyMessage(var Message: TMessage);
    begin
      OldWndProc(Message);
      if Message.Msg = WM_PAINT then
      begin
        DrawCtl3DShadow(Self.canvas,pnlShadow.BoundsRect,5,5);
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      OldWndProc := PnlCanvas.WindowProc;
      PnlCanvas.WindowProc := MyMessage;end;
      

  5.   

    为什么传递Self.Canvas
    这不是窗体的Canvas吗
      

  6.   

    我有个小小的想法,就是在panel组件上放置一个画布,好象是paintbox吧,在paintbox的onpaint事件里面,可以画图! 
     
    begin
       with paintbox1 as sender do
          with canvas do
            begin 
              .
              .
              .
            end;
    好象就是这样吧,我也不大记得了。其实这是我的做法,也许这些并不能符合你的想法!呵呵
      

  7.   

    我记错了,实在是不好意思,应该是:
      
      begin
      with sender as Tpaintbox do
          with canvas do
            begin 
              .
              你的画图语句;
              .
            end;