PDA

View Full Version : مقدار دهی اولیه



1485159
چهارشنبه 07 بهمن 1388, 18:42 عصر
وقتی از کد زیر استفاده کیکنم ارور میده! چیکار کنم؟

type
xx= record
m: integer=5;
end;

AliReza Vafakhah
چهارشنبه 07 بهمن 1388, 20:27 عصر
وقتی از کد زیر استفاده کیکنم ارور میده! چیکار کنم؟

type
xx= record
m: integer=5;
end;

تا اونجایی که من یادم مقدار اولیه برای آرایه های ایستا بوده نه داده های معمول دلفی

شما با C++ اشتباه گرفتید !

vahid64
چهارشنبه 07 بهمن 1388, 21:04 عصر
وقتی از کد زیر استفاده کیکنم ارور میده! چیکار کنم؟
type
xx= record
m: integer=5;
end;

من در دلفی فقط آرایه ها را بلدم مقدار دهی اولیه کنم.

اگه واقعاً راهی هست که ما بلد نیستیم یکی بیاد بگه ما هم یاد بگیریم.

البته منظور این مدل مقداردهی هنگام تعریف هست وگرنه در ابتدای برنامه یا بسته به نیاز در OnCreate یا OnShow و ... فرم که مشخص هست.

1485159
چهارشنبه 07 بهمن 1388, 21:27 عصر
private
{ Private declarations }
public

{ Public declarations }
end;
var
Form1: TForm1;

I: Integer=5;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var

BORHAN TEC
چهارشنبه 07 بهمن 1388, 21:38 عصر
procedure TForm2.Button1Click(Sender: TObject);
{$J+}
Const I: Integer = 5;
{$J-}
begin
I := 7;

end;

1485159
چهارشنبه 07 بهمن 1388, 22:14 عصر
میشه در مورد سوئیچی که استفاده کردین توضیح بدین؟

vcldeveloper
پنج شنبه 08 بهمن 1388, 00:46 صبح
وقتی از کد زیر استفاده کیکنم ارور میده! چیکار کنم؟
توی تعریف رکورد یا کلاس نمی تونید به فیلد مقدار اولیه بدید.
به متغیرهای محلی (که در داخل یک تابع تعریف میشند) هم نمی تونید مقدار اولیه بدید.
به متغیرهای عمومی می تونید مقدار اولیه بدید.

vcldeveloper
پنج شنبه 08 بهمن 1388, 01:19 صبح
میشه در مورد سوئیچی که استفاده کردین توضیح بدین؟
روی همون سوئیچ در Editor دلفی F1 را می زدید، تا توضیحش را ببینید.
اون سوئیچ برای مقداردهی اولیه به متغیرها نیست، بلکه برای فعال کردن حالت قدیمی ثابت ها در دلفی هست؛ در حالت قدیمی، یک ثابت را می شد در صورت لزوم مثل یک متغیر در کد تغییر داد. در حالت جدید یک ثابت در داخل کد قابل تغییر نیست.
اگر اون سوئیچ را فعال کنید، ثابت I در کد فوق صرفا مقداردهی اولیه نمیشه، بلکه حتی در صورت خروج از اون متد هم مقدار خودش را حفظ میکنه! یعنی دفعه اولی که اون متد فراخوانی بشه، مقدار I مساوی یک خواهد بود، و شما هر تغییری در I بدید، با خروج از متد، آن تغییر از بین نمیره، و در اجرای مجدد آن متد، آخرین مقدار I به جای 1 در متد استفاده میشه.