Aqui está um exemplo mais detalhado de um grande bug do Delphi.
Sugiro que todos experimentem o máximo possível. Espero que a discussão sobre o assunto seja mais viva, de modo a
Pode ser de alguma ajuda para todos. Existem dois artigos semelhantes no
http://www.csdn.net/develop/read_article.asp?id=12606
http://www.csdn.net/develop/read_article.asp?id=12525
Abaixo está o código-fonte de exemplo, você pode brincar livremente com as configurações.
unidade Unidade1;
interface
usa
Windows, Mensagens, SysUtils, Variantes, Classes, Gráficos, Controles, Formulários,
Diálogos, StdCtrls, Menus, ExtCtrls, jpeg;
tipo
TForm1 = classe(TForm)
Botão1: Botão T;
MainMenu1: TMainMenu;
xiangya1:TMenuItem;
Imagem1: TImage;
Forma1: Forma T;
Procedimento Button1Click(Remetente: TObject);
procedimento xiangya1Click(Remetente: TObject);
procedimento Image1Click(Remetente: TObject);
procedimento Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Inteiro);
privado
{Declarações privadas}
público
{Declarações públicas}
fim;
var
Formulário1: TForm1;
tipo
TxObject = classe
destruidor Destruir; substituir;
fim;
implementação
{$R *.dfm}
procedimento TForm1.Button1Click(Remetente: TObject);
var
x: TxObject;
começar
x := TxObject.Create;
ShowMessage('xiangya');
x.Grátis;
fim;
{TxObject}
destruidor TxObject.Destroy;
começar
MessageBox(0, PChar('TxObject'),'Livre',MB_OK);
herdado;
fim;
procedimento TForm1.xiangya1Click(Remetente: TObject);
var
x: TxObject;
começar
x := TxObject.Create;
ShowMessage('xiangya');
x.Grátis;
fim;
procedimento TForm1.Image1Click(Remetente: TObject);
var
x: TxObject;
começar
// x := TxObject.Create;
//ShowMessage('xiangya');
x.Grátis;
fim;
procedimento TForm1.Shape1MouseDown(Remetente: TObject; Botão: TMouseButton;
Shift: TShiftState; X, Y: Inteiro);
var
xx: TxObject;
começar
//xx := TxObject.Create;
ShowMessage('xiangya');
xx.Grátis;
fim;
fim