unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  ZDQ1:TStatusBar;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
ZDQ1.Panels[1].Text:='OK';//这里我对这个ZDQ1的一个Panel的Text赋值,那么这个ZDQ1要不要释放?怎么释放?这个ZDQ1并不是直接放置在窗体上的
end;
end.
ZDQ1我只是直接声明这个变量,然后就直接使用这个对象,有问题吗?

解决方案 »

  1.   

    你要先创建,然后再使用,最后释放。我分三个按钮完成示例如下
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      ZDQ1:TStatusBar;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);  //先创建
    begin
       zdq1 := TStatusBar.Create(nil);
       zdq1.Parent := Form1;
       zdq1.Align := alBottom;end;procedure TForm1.Button1Click(Sender: TObject);//调用begin
      ZDQ1.SimpleText:='OK';
    end;procedure TForm1.Button3Click(Sender: TObject); //释放
    begin
      zdq1.Free;
    end;end.
      

  2.   

    ZDQ1.Panels[1].Text:='OK';//这里我对这个ZDQ1的一个Panel的Text赋值,那么这个ZDQ1要不要释放?怎么释放?这个ZDQ1并不是直接放置在窗体上的
    ----------------------------------------------------------------------------------
    应该是有问题的,如果是放在窗体上的一个TStatusBar那就没问题了,可你这样定义了以后就用,是不可以的,你只是申明了这个对象,还需要为这个对象分配资源,需要用ZDQ1.Create(……)分配好资源,之后还要在上面新建几个panel,现在问题清楚了否?
    ----------------------------------------------------------------------------------