PDA

View Full Version : ایجاد TmemoryStream



ابوالفضل عباسی
پنج شنبه 26 اسفند 1395, 21:06 عصر
باسلام. خدمت تمامی دوستان.
عیدتون پیشاپیش مبارک،امیدوارم سال خوبی رو داشته باشید.
یک سوال:

چگونه میتونم یک TmemoryStream رو فهمید nil است یا نه؟
مثلا:

var tm:TmemoryStream;begin
if ..... then
begin
tm:=TmemoryStream.create;
.
.
.
end;
if tm <> nil then
tm.free;
.
.
.
end;

قسمت ( <> nil) درست کار نمی کند. همیشه وارد شرط میشود.(چه وقتی که tm ایجاد شده باشد،چه وقتی که tm ایجاد نشده باشد)
بجای nil چه فرمانی باید گذاشت؟

باتشکر از همگی

Delphi Coder
جمعه 27 اسفند 1395, 00:32 صبح
سلام. سال نو شما هم پیشاپیش مبارک.

var
TM: TMemoryStream;
begin
TM := nil;
if TM = nil then
TM := TMemoryStream.Create;
if TM = nil then
TM := TMemoryStream.Create;
FreeAndNil(TM);
if TM = nil then
TM := TMemoryStream.Create;
FreeAndNil(TM);
این کد درست کار میکنه همونطوری که انتظار میره. اگر متغییر local باشه باید خودتون در ابتدای کار اونرو nil کنید، بر خلاف فیلدها که اول کار خودشون به nil مقداردهی میشن این قانون در مورد متغییرهایی که local هستند صدق نمیکنه.