Aquí hay un ejemplo más detallado de un gran error de Delphi.
Sugiero que todos lo prueben tanto como sea posible. Espero que el debate al respecto sea más animado, para
Puede ser de alguna ayuda para todos. Hay dos artículos similares en el
http://www.csdn.net/develop/read_article.asp?id=12606
http://www.csdn.net/develop/read_article.asp?id=12525
A continuación se muestra el código fuente de ejemplo, puedes jugar libremente con la configuración.
unidad Unidad1;
interfaz
usos
Windows, Mensajes, SysUtils, Variantes, Clases, Gráficos, Controles, Formularios,
Diálogos, StdCtrls, Menús, ExtCtrls, jpeg;
tipo
TForm1 = clase(TForm)
Botón1: TBotón;
Menú principal1: TMenú principal;
xiangya1: TMenuItem;
Imagen 1: TImagen;
Forma1: Forma T;
Botón de procedimiento 1 clic (Remitente: TObject);
procedimiento xiangya1Click(Remitente: TObject);
procedimiento Image1Click(Remitente: TObject);
procedimiento Shape1MouseDown(Remitente: TObject; Botón: TMouseButton;
Mayús: TShiftState; X, Y: Entero);
privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
var
Formulario1: TForm1;
tipo
TxObjeto = clase
destructor Destruir; anular;
fin;
implementación
{$R*.dfm}
procedimiento TForm1.Button1Click (Remitente: TObject);
var
x: TxObjeto;
comenzar
x := TxObject.Crear;
ShowMessage('xiangya');
x.Gratis;
fin;
{TxObjeto}
destructor TxObject.Destroy;
comenzar
MessageBox(0, PChar('TxObject'),'Gratis',MB_OK);
heredado;
fin;
procedimiento TForm1.xiangya1Click (Remitente: TObject);
var
x: TxObjeto;
comenzar
x := TxObject.Crear;
ShowMessage('xiangya');
x.Gratis;
fin;
procedimiento TForm1.Image1Click (Remitente: TObject);
var
x: TxObjeto;
comenzar
// x := TxObject.Create;
// ShowMessage('xiangya');
x.Gratis;
fin;
procedimiento TForm1.Shape1MouseDown(Remitente: TObject; Botón: TMouseButton;
Mayús: TShiftState; X, Y: Entero);
var
xx: ObjetoTx;
comenzar
// xx := TxObject.Create;
ShowMessage('xiangya');
xx.Gratis;
fin;
fin