PDA

View Full Version : نحوه تعریف متغییر استاتیک



Inprisee
شنبه 29 اسفند 1388, 19:42 عصر
سلام.


ضمن تبریک سال نو میخاستم بپرسم چطوری میشه متغییر استاتیک تعریف کرد. من کد زیر رو نوشتم ولی ارور میده :



[DCC Error] Unit1.pas(29): E2064 Left side cannot be assigned to





procedure TForm1.Button1Click(Sender: TObject);
const c:integer=0;
begin
c:= c+ 1;
caption:= inttostr(c);
end;

Felony
شنبه 29 اسفند 1388, 20:07 عصر
متغیر رو به صورت یک ثابت تعریف کردید و میخواین در زمان اجرا مقدارش رو تغییر بدید ، این پیغام خطا طبیعی هست .

Ahmad Chehreghani
یک شنبه 01 فروردین 1389, 01:29 صبح
مشکل در تعریف متغیر استاتیک (http://www.barnamenevis.org/forum/showthread.php?t=178768)

Inprisee
یک شنبه 01 فروردین 1389, 01:43 صبح
متغیر رو به صورت یک ثابت تعریف کردید و میخواین در زمان اجرا مقدارش رو تغییر بدید ، این پیغام خطا طبیعی هست .

ُسلام. خوب اگه بخوام با هر بار کلیک روی button1 یه مقدار به c اضافه و در کپشن نمایش بده کد رو باید چطور تغییر بدم؟؟ :متفکر:

راستی فکر کنم این برنامه رو از مثال D5 گرفتم. ولی الان روی D7,2010 تست کردم کار نمیکنه!!!!

متشکر

Ahmad Chehreghani
یک شنبه 01 فروردین 1389, 01:51 صبح
در لينکي که دادم گفته شده

لينک غير شيلتر :
http://www.barnamenevis.biz/forum/showthread.php?t=178768

موفق باشيد

Inprisee
یک شنبه 01 فروردین 1389, 01:59 صبح
در لينکي که دادم گفته شده

لينک غير شيلتر :
http://www.barnamenevis.biz/forum/showthread.php?t=178768

موفق باشيد

سلام. بله من قبل از ایجاد تاپیک خونده بودمش ولی متوجه اون {$J+} و {$J-} نشده بودم .( راستی اصلا اینها چی هستن؟ چه کاربردی دارن ؟؟؟؟ ) با اصلاح کد بصورت زیر درست شده و کار میکنه. اما راه دیگه ای هم هست ؟؟ مثلا چطور میشه همین مثال رو بصورت تعریف متغییر عمومی بنویسم؟؟؟ یعنی C متغییر عمومی باشه و بعد در فرم کریت مقدارش صفر باشه بعد همون کد اولین پست رو میشه چطوری استفاده کرد؟؟





procedure TForm1.Button1Click(Sender: TObject);
const
{$J+}
c:integer=0;
{$J-}
begin

c:= c+ 1;
caption:= inttostr(c);
end;

Ahmad Chehreghani
یک شنبه 01 فروردین 1389, 02:21 صبح
چطور میشه همین مثال رو بصورت تعریف متغییر عمومی بنویسم

در قسمت public کلاس فرمتون يا قبل از implementation متغير C را تعريف کنيد.

Inprisee
یک شنبه 01 فروردین 1389, 02:28 صبح
سلام. اگه امکانش هست بفرمایین که اینا چی هستن و چه کاربردی دارن؟؟

خیلی ممنون




{$J+}

{$J-}


راستی اونهایی که بازم احیانا مشکل دارن و متوجه نشدن با توضیحات دوستمون اینم کدش:



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }

var c:integer;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

c:= c+ 1;
caption:= inttostr(c);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
c:=0;
end;

end.

Ahmad Chehreghani
یک شنبه 01 فروردین 1389, 03:08 صبح
{$J+} {$J-}

يا


{$WRITEABLECONST ON} {$WRITEABLECONST OFF}


$J به مشخص ميکنه که ثابت ها بتونن تغيير پيدا کنن يا نه.
اين قابليت براي سازگاري ورژن هاي قديمي دلفي و پاسکال شي گرا هستش
به طور پيش فرض به صورت {-j$} است
توصيه شده که از {-j$} استفاده بشه.

موفق باشيد

---
var را از قسمت Public کدتون برداريد

Inprisee
یک شنبه 01 فروردین 1389, 03:26 صبح
[CODE]

var را از قسمت Public کدتون برداريد

سلام. خیلی ممنون که پاسخ دادین. این کدی که نوشتم کار کرد که . ولی آره var رو برداشتم هم درست کار کرد. عجب ما از چه چیزایی بیخبریم . راستی چه فرقی داره که var باشه یا نه ؟

عید رو هم مجددن بهتون تبریک میگم . سال خوبی داشته باشین...