Saya menulis satu paragraf, pada alamat di bawah ini, bug besar Delphi, Anda tidak perlu repot membacanya, saya akan mengulanginya di sini.
Tapi saya rasa Anda bisa melihat komentar di bawah.
http://www.csdn.net/Develop/read_article.asp?id=12525
Kode aslinya seperti ini,
Prosedur TForm1.Button1Click(Pengirim: TObject);
var
string :TStringList;
mulai
jika tidak Ditugaskan (string) maka
mulai
string :=TStringList.Buat;
// ShowMessage('sfdasfd'); Kalau ditambah kalimat ini atau itu tidak ada masalah, sebaliknya haha.
akhir;
string.gratis;
string := nihil;
akhir;
Faktanya, hanya ada satu baris yang ingin saya fokuskan, yaitu baris strings.Free;
Namun kebetulan ada kode lain yang menyebabkan banyak masalah yang tidak perlu. Saya sudah menekankannya beberapa kali, tetapi kode inti masih ditutupi oleh karangan bunga lainnya. Dan itu selalu menimbulkan kesalahpahaman, jadi
Saya menulis ulang kode sebagai berikut:
prosedur TForm1.Button1Click(Pengirim: TObject);
var
string :TStringList;
mulai
string.gratis;
akhir;
Faktanya, kelas TStringList dalam kode ini dapat diganti dengan kelas mana pun yang ingin Anda coba.
Dengan cara ini, jika Anda menggunakan jendela jam CPU, Anda dapat menemukan sesuatu, tetapi jika Anda tidak menggunakannya, cukup tekan Ctrl+F2
Hentikan programnya.
Saya tidak tahu apakah judul ini juga memiliki arti bodoh, tapi tetap saja ini dalam bahasa Cina. Anda dan saya sama-sama mengerti.
Sebenarnya tujuan dari kode ini adalah untuk mengingatkan Anda agar memperhatikan penggunaan objek yang benar. Adapun penyebab kesalahan pada kode ini adalah.
Saya pikir ini memang kelalaian kompiler, tetapi jika Anda tidak memiliki penelitian tentang struktur memori kelas dan objek, saya sarankan Anda: pertama, lepaskan, dan kedua, pelajari.