unit Unit1interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type
  TForm1 = class(TForm)
    procedure FormCreate(Sendor: TObject);
  private
  public
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
 Canvas.Rectangle(10,10,100,100);
end;end.怎么运行时除了一个Form什么也没看见啊,矩形呢?

解决方案 »

  1.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormPaint(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormPaint(Sender: TObject);
    begin
      Canvas.Rectangle(10,10,100,100);
    end;end.
      

  2.   



    procedure TForm1.FormPaint(Sender: TObject);
    begin
      Canvas.Rectangle(10,10,100,100);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Self.OnPaint := Self.FormPaint;
    end;
      

  3.   

    还是手把手地来一下吧:打开Delphi,新建一个Application的Project,在Object Inspector中,找Events页,然后找一个OnPaint项,双击,在右边的begin end之间,粘贴这句代码:Canvas.Rectangle(10,10,100,100);然后运行试试
      

  4.   

    你不能写在 FormCreate 事件下的,因为窗口还没显示出来
    二楼是没错的 
      

  5.   


    再帮你一下。不知你注意了没有,在双击某事件项后面的空格后,它会自动把事件处理过程的名字写入,在*.dfm文件中也会看到
    相当于3楼的Self.OnPaint := Self.FormPaint;这句功能。
      

  6.   

    不懂!怎么双击添加的FormPaint就有效!
      

  7.   

    结贴吧。多说无益,补基础吧。看起来你刚刚用Delphi没几天,并且也没有学过VB之类的可视编程工具。