View Full Version : مبتدی: تعریف متغیر استاتیک در ساب روتین
ehsan_faal
جمعه 07 فروردین 1394, 20:03 عصر
سلام. آیا میشه یه متغیر استاتیک توی یه ساب روتین تعریف کرد که مثلا ازش به عنوان یه شمارنده استفاده کرد؟
مثلا بتونم باهاش بشمرم چند بار اومدم داخل این ساب روتین؟
توی پراسجر میشه یه متغیر از نوع var گذاشت و هر دفعه مقدارش رو یکی زیاد کرد اما تو تابع چطور؟
Mahmood_M
شنبه 08 فروردین 1394, 00:18 صبح
متغیرها یا درون بدنه ی Function یا Procedure و بعد از کلمه کلیدی Var تعریف میشن ( میشه Local ) یا به صورت عمومی در بالای Unit و زیر کلمه کلیدی Var ( میشه Global )
متغیرهای Local بعد از پایان کار Procedure یا Function ، مقدارشون ذخیره نمیشه و نمی تونید به عنوان شمارنده برای موردی که گفتید ازشون استفاده کنید ، برای شمارش تعداد دفعات اجرا باید یک متغیر Global در بالای Unit تعریف کنید و با هر بار اجرا مقدارش رو افزایش بدید
BORHAN TEC
شنبه 08 فروردین 1394, 00:32 صبح
با سلام،
متغیرهای Local بعد از پایان کار Procedure یا Function ، مقدارشون ذخیره نمیشه و نمی تونید به عنوان شمارنده برای موردی که گفتید ازشون استفاده کنید
البته با یک تکنیک میشه این کار رو بدون استفاده از متغیرهای Global در دلفی انجام داد. به مثال زیر دقت کنید:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
procedure doSomethings();
{$WRITEABLECONST ON} // or {$J+}
const
FCounter: Integer = 0;
{$WRITEABLECONST OFF} // or {$J-}
begin
Inc(FCounter);
Writeln('FCounter: ', FCounter);
end;
begin
doSomethings();
doSomethings();
doSomethings();
Readln;
end.
خروجی کد بالا به شکل زیر خواهد بود:
FCounter: 1
FCounter: 2
FCounter: 3
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.