PDA

View Full Version : متغیر (تابع)عمومی



sasan_1364
شنبه 25 آذر 1385, 19:17 عصر
من می خوام یه متغیر داشته باشم که بتونم در تمام فرمها پروژه ام ازش استفاده بکنم
چط.وری این کار رو بکنم

soroush_vs
شنبه 25 آذر 1385, 19:23 عصر
میتونید توی یونیت فرم اصلی پروژه اون متغیر رو تعریف کنید


var
Fmain: TFmain;
keyboardlayout:integer=0;

soroush_vs
شنبه 25 آذر 1385, 19:25 عصر
البته باید یونیت فرم اصلی رو به Uses در فرمی که میخواهید به آن متغیر سراسری دسترسی پیدا کنید اضافه کنید

dkhatibi
شنبه 25 آذر 1385, 19:29 عصر
البته باید در قسمت Public فرم متغیر مذکور را تعریف کنی.
و برای دسترسی به اون مثلا اگر تو فرم 1 متغیر Test را تعریف کردی هر جا خواستی باید به شکل زیر
از اون استفاده کنی


Form1.Test;


البته باید Unit1 را تو قسمت Uses بخش Implication فرمی که از متغیر استفاده می کند تعریف کنید.
البته این کار به طور خودکار با زدن دکمه ی نقطه و دادن یک پیام انجام می شود.

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

soroush_vs
شنبه 25 آذر 1385, 19:31 عصر
لازم نیست حتما توی قسمت Public تعریف شود امتحان کنید

dkhatibi
شنبه 25 آذر 1385, 19:39 عصر
لازم نیست حتما توی قسمت Public تعریف شود امتحان کنید

یک تکه کد بیاورید.

soroush_vs
شنبه 25 آذر 1385, 19:40 عصر
در فرم اصلی

private
{ Private declarations }
public
{ Public declarations }
end;

var
Fmain: TFmain;
keyboardlayout:integer=0;//<<<<<--------------------------
implementation

dkhatibi
شنبه 25 آذر 1385, 19:45 عصر
درسته اینجوری هم جواب می ده!
ممنون
فکر کنم راحت تر و بهتر هم باشه ولی چه فرقی با موقعی که تو Public تعریف می کنیم داره؟

soroush_vs
شنبه 25 آذر 1385, 19:53 عصر
دقیقا بحث کلاس هاست
وقتی شما از توی یک فرم دیگه قصد ارتباط با فرضا Edit1 در فرم اصلی رو دارید به همین شکل عمل خواهد شد
در ضمن فراموش نکنید که Public در قسمت type هست اما تعریف ارایه شه در الا در قسمت var هست.

dkhatibi
شنبه 25 آذر 1385, 19:57 عصر
دقیقا بحث کلاس هاست
وقتی شما از توی یک فرم دیگه قصد ارتباط با فرضا Edit1 در فرم اصلی رو دارید به همین شکل عمل خواهد شد
در ضمن فراموش نکنید که Public در قسمت type هست اما تعریف ارایه شه در الا در قسمت var هست.

این روش فقط مختص به فرم اصلی است؟

soroush_vs
شنبه 25 آذر 1385, 20:00 عصر
خیر البته اگر خودتون امتحان کنید لذتش رو برای خودتون محفوظ نگه میدارید

حرفه ای
دوشنبه 27 آذر 1385, 09:03 صبح
من روی فرم datamadule اینگونه متغیرها رو استفاده می کنم و چون connection من روی دیتاماجور قرار داره و در اکثرفرمها use می شه پس متغیرهای من در اکثرفرمهام وجود داره
البته در قسمت Public و یا var اصلی باید این کارو بکنی

sasan_1364
سه شنبه 28 آذر 1385, 20:02 عصر
manzor az form asli hamon Unit Project ast. ya na


bebinid Man mikhm chizi Ro Uses konam

soroush_vs
سه شنبه 28 آذر 1385, 20:15 عصر
ساسان خان فارسی تایپ کنید
در Delphi وارد منوی Project شوید سپس گزینه Options در تب Forms ببینید MainForm چه فرمی انتخاب شده.اون فرم اصلی است که بیشتر عملیات پروژه به اون مربوط میشود

sasan_1364
چهارشنبه 29 آذر 1385, 19:02 عصر
سلام

ببینید دوستان هممن جوری که گفتم من متغیری میخوام که در تموم پروژم ازش استفاده کنم .-- متغیر عمومی برای پروژه --

mzjahromi
پنج شنبه 30 آذر 1385, 07:24 صبح
دوستان به اندازه کافی توضیح دادن ولی
اگر میخواهید یه متغیر عمومی تعریف کنید
باید در قسمت var در یکی از فرمهاتون تعریفش کنید اونوقت در هر فرمی که اون فرم بهش use شده باشه قابل استفاده است.
همچنین میتونید در قسمت Public فرمتون تعریفش کنید
در اون صورت هم مانند مورد فوق قابل استفاده است با این تفاوت که باید هنگام استفاده از متغیر نام فرم هم قبل از اون بیارید form1.var1.
تفاوت این دو مورد هم اینه که اولی یه متغیر Global هست ولی دومی یه متغیر از یک فرم هست که از بیرون هم میتونه مورد دسترسی قرار بگیره. ولی فکر میکنم اون چیزی که شما می خواهید اولی باشه

حرفه ای
پنج شنبه 30 آذر 1385, 09:17 صبح
من روی فرم datamadule اینگونه متغیرها رو استفاده می کنم و چون connection من روی دیتاماجور قرار داره و در اکثرفرمها use می شه پس متغیرهای من در اکثرفرمهام وجود داره
البته در قسمت Public و یا var اصلی باید این کارو بکنی


ساسان خان پیشنهاد خوبی بهت دادم متغیرتو با توی فرم Query و یا در فرم اصلی تعریف کن
با alt+F11 نیز Unit مورد نظر توی فرم فعال use کن
:متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: