我寫了一個段落,在下面這個地址,Delphi的大Bug,您不用費神去看,我在此重復。
但是我覺得后面的評論您可以一瞧。
http://www.csdn.net/Develop/read_article.asp?id=12525
原來的代碼是這樣,
PRocedure TForm1.Button1Click(Sender: TObject);
var
strings :TStringList;
begin
if not Assigned(strings) then
begin
strings :=TStringList.Create;
// ShowMessage('sfdasfd');如果加上這樣或那樣的句子就沒有問題,否則,哈哈.
end;
strings.free;
strings := nil;
end;
實際上,我要說的重點只有一行,那就是strings.Free;這一行。
但是恰好有別的代碼存在,引起了很多不必要的麻煩,我也曾經強調過幾次,但是核心的代碼還是被其余的花環罩住了。而且總是引起誤會,所以
我重寫一遍代碼,如下所示:
procedure TForm1.Button1Click(Sender: TObject);
var
strings :TStringList;
begin
strings.free;
end;
事實上,這個代碼中的TStringList類可以替換成任何您想要去試一試的類。
這樣,如果您使用CPU觀察窗口就能發現東西,但是如果不使用它,您就按下Ctrl+F2
終止程序吧。
這個標題是否也有點 笨蛋的意思,我不知道,反正是中文。您和我都能看懂。
實際上這段代碼的主旨在于提醒您注意對象的正確使用,至于這段代碼出錯的原因,
我想,確實是編譯器的一個疏漏,但是如果您對類和對象的內存結構沒有什么研究的話,我建議您:一、放任,二、鉆研它。
新聞熱點
疑難解答
圖片精選