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 باشه یا نه ؟
عید رو هم مجددن بهتون تبریک میگم . سال خوبی داشته باشین...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.