+ -
当前位置:首页 → 问答吧 → 程序关闭时出错!!

程序关闭时出错!!

时间:2011-11-29

来源:互联网

作者: zhangzhen116   发布时间: 2011-11-29

无代码无真相,不过通常是内存释放和内存访问的问题

作者: funxu   发布时间: 2011-11-29

很有可能是释放了一个空对象!检查窗体释放代码部分!

作者: nm_wyh   发布时间: 2011-11-29

引用 1 楼 funxu 的回复:
无代码无真相,不过通常是内存释放和内存访问的问题

里面都没代码的。我就建了一个模版,Form1 为模版。Form2为主窗体。From3为子窗体。
允许时关闭From2就出现这个错误了。

作者: zhangzhen116   发布时间: 2011-11-29

空指针,仔细调试下

作者: iqyely   发布时间: 2011-11-29

form1
Delphi(Pascal) code

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, WinSkinData;

type
  TMaster = class(TForm)
    SkinData1: TSkinData;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Master: TMaster;

implementation

{$R *.dfm}

end.


From2
Delphi(Pascal) code

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit1, WinSkinData,Unit3, StdCtrls;

type
  TForm2 = class(TMaster)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
 // inherited;
  form3.Show;

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
   Application.Terminate;
end;

end.


Form3
Delphi(Pascal) code

unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit1, WinSkinData;

type
  TForm3 = class(TMaster)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

end.

作者: zhangzhen116   发布时间: 2011-11-29

form3.Show;
form3还没创建吧

作者: funxu   发布时间: 2011-11-29

Project代碼也放出來看看

作者: kaikai_kk   发布时间: 2011-11-29

form3:=Tform3.Create(nil);
form3.show();

作者: funxu   发布时间: 2011-11-29

引用 7 楼 kaikai_kk 的回复:
Project代碼也放出來看看

我找到原因了。是那个皮肤控件的问题。去掉那个控件没没有错误了。窗体不能继承有皮肤控件的窗体嘛?

作者: zhangzhen116   发布时间: 2011-11-29

form1
Delphi(Pascal) code

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.



form2
Delphi(Pascal) code

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, WinSkinData;

type
  TForm2 = class(TForm)
    SkinData1: TSkinData;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

end.



form3
Delphi(Pascal) code

unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit2, WinSkinData;

type
  TForm3 = class(TForm2)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

end.



Project
Delphi(Pascal) code

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Unit3 in 'Unit3.pas' {Form3};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.Run;
end.


作者: zhangzhen116   发布时间: 2011-11-29

热门下载

更多