下面是一个关于Delphi大Bug的更加详尽的例子。
我建议大家尽可以好好去试试。关于它的讨论,希望热烈一点,借此,
能对大家多少有些帮助。两外两个类似的文章在
http://www.csdn.net/develop/read_article.asp?id=12606
http://www.csdn.net/develop/read_article.asp?id=12525
下面是例子源代码,其中的设置,您尽可以自由发挥。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
Button1: TButton;
MainMenu1: TMainMenu;
xiangya1: TMenuItem;
Image1: TImage;
Shape1: TShape;
procedure Button1Click(Sender: TObject);
procedure xiangya1Click(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
type
TxObject = class
destructor Destroy;override;
end;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
x: TxObject;
begin
x := TxObject.Create;
ShowMessage('xiangya');
x.Free;
end;
{ TxObject }
destructor TxObject.Destroy;
begin
MessageBox(0, PChar('TxObject'),'Free',MB_OK);
inherited;
end;
procedure TForm1.xiangya1Click(Sender: TObject);
var
x: TxObject;
begin
x := TxObject.Create;
ShowMessage('xiangya');
x.Free;
end;
procedure TForm1.Image1Click(Sender: TObject);
var
x: TxObject;
begin
// x := TxObject.Create;
// ShowMessage('xiangya');
x.Free;
end;
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
xx: TxObject;
begin
// xx := TxObject.Create;
ShowMessage('xiangya');
xx.Free;
end;
end.