PDA

View Full Version : مبتدی: استفاده از يه متغير در چندين فرم



zohreh jun
جمعه 27 آذر 1388, 23:27 عصر
سلام
قول بدين به من نخندين آخه من خيلي مبتدي ام
مرسي
1-چطوري يه متغير تعريف كنم تا بتونم تو چند تا فرم از اون استفده كنم.
2-چطوري مشخص كنم وقتي Enter ميزنم يه دكمه خاص كليك شه.
ممنون ميشم جواب بدين

iman_tavajoh
شنبه 28 آذر 1388, 05:58 صبح
در مورد سوال اول اگر متغییری احتیاج دارید که می خواهید یک بار تعریف شود
و در بقیه فرم ها استفاده کنید به نظر من از این روش استفاده کنید

در قسمت پروپرتی ، پروژه قسمتی هست با نام setting در این قسمت شما می توانید متغییر های
global تعریف کنید و از تمام سیستم به آن دسترسی داشته باشید

sky_in_iran
شنبه 28 آذر 1388, 07:46 صبح
سلام دوست عزيز
دوست خوبمون جواب سوال اول شما رو دادن البته راه هاي زيادي براي تعريف متغير عمومي هست
درباره سوال دومت شما ميتوني در keypress يا keydown كه event هستن استفاده كني ، كد enter هم 13 است شما يه if بزار بعد توش چك كن اگه مساوي 13 بود يعني اينتر زده شده تو if هركاري دوست داري بزار انجام بده

zohreh jun
دوشنبه 30 آذر 1388, 20:30 عصر
در مورد سوال اول اگر متغییری احتیاج دارید که می خواهید یک بار تعریف شود
و در بقیه فرم ها استفاده کنید به نظر من از این روش استفاده کنید

در قسمت پروپرتی ، پروژه قسمتی هست با نام setting در این قسمت شما می توانید متغییر های
global تعریف کنید و از تمام سیستم به آن دسترسی داشته باشید
سلام مرسي از جوابت من كاري كه گفتي انجام دادم ولي چطوري به اون متغيري كه تعريف كردم دسترسي پيدا كنم.
تو كادرهاي باز شو اثري از متغيري كه تعريف كردم نيست.اگه روش خاصي براي استفاده از اون وجود داره لطفا بگين.
ممنون:لبخند:

zohreh jun
دوشنبه 30 آذر 1388, 20:33 عصر
سلام دوست عزيز
دوست خوبمون جواب سوال اول شما رو دادن البته راه هاي زيادي براي تعريف متغير عمومي هست
درباره سوال دومت شما ميتوني در keypress يا keydown كه event هستن استفاده كني ، كد enter هم 13 است شما يه if بزار بعد توش چك كن اگه مساوي 13 بود يعني اينتر زده شده تو if هركاري دوست داري بزار انجام بده
سلام
ميشه روش هاي ديگه اي كه براي تعريف متغير عمومي وجود داره برام بذاريد .:چشمک:
مرسي

AliRezaPro
دوشنبه 30 آذر 1388, 21:06 عصر
2-چطوري مشخص كنم وقتي Enter ميزنم يه دكمه خاص كليك شه.
خاصیت AcceptButton فرمتون رو با آبجکت ها مقدار دهی کنید

slashslash2009
دوشنبه 30 آذر 1388, 22:01 عصر
واسه اینکه بتونید از یک متغیر در تمام برنامتون استفاده کنید بهترین راه اینه که یک class بسازید و متغیرتون رو به صورت استاتیک تعریف کنید به این صورت :

static public string field1;و اینطوری بهش مقدار بدی
common.field1 = label27.Text;همینطور که میبینید مقدار یک لیبل رو بهش دادم پس میتونید نه تنها متغیر بلکه هر چیزی رو بهش بدین موفق باشد امیدوارم ساخت کلاس رو بلد باشید
comman نام کلاسم هست

sky_in_iran
سه شنبه 01 دی 1388, 07:25 صبح
يكي ديگه از روش هاي تعريف متغير به صورت عمومي هموني كه استاد slashslash2009 (http://barnamenevis.org/forum/member.php?u=90145) فرمودند و يه روش متداول و خوبيه يه روش ديگه اينه كه شما به صورت prop متغير تعريف كني (همون پروپرتي خودمون كه روشش مثل هموني كه استاد slashslash2009 (http://barnamenevis.org/forum/member.php?u=90145)) اما روشي كه استاد slashslash2009 (http://barnamenevis.org/forum/member.php?u=90145) روشه خوبيه از اين روش استفاده كن اگه باز به مشكل خوردي بفرما كمكت كنيم انشا الله كه كارت را بيفته

اَرژنگ
سه شنبه 01 دی 1388, 08:25 صبح
شما ها چرا کفر میگید ؟
من پیره مرد جونم دراومد اینجا بارها اشکال این روش استاتیک بازی و اشکالات استفاده از متغییرهایه عمومی را گفتم و استادها مقالات و پستها هم فرستادند، چند وقت حالم خوب نبود، گفتم یک سر بزنم ببینم این فروم بعد از ما چطوری پیش میره، که میبینم یکی پست زده که چرا نمیشه در برنامه نویسی پیش رفت و دیگران هم روشهایی را از اصل اشتباه هستند به بقیه که تازه دارند شروع میکنند یاد میدند!
اگر یکی دلش میخواهد از روشهایه اشتباه استفاده کند خود داند ولی دیگر چرا تازه کارها را که با روشها اشتباه آلوده نیستند به بیراه میکشانید؟
وقتی که کار از پایه خراب است چه انتظاری دارید؟
اگر میخواهید پیشرفت کنید از الان تازه کارها را از خودتان بهتر بسازید که ۳ سال بعد از این حداقل دانش از چیزی که خودتان میدانید کمتر نباشه و پیشرفت خودبه خود حاصل میشه.
وگرنه ۱۰ سال بعد هنوز دارید مینالید که چرا چرا نمیشه بهتر شد؟

کاری نکنید با عصام دنبالتان کنم!

M.YasPro
سه شنبه 01 دی 1388, 08:40 صبح
سلام
من هر وقت یه متغیری بخوام که بیش از یه فرم رو قراره پوشش بده ، این متغیر رو بین فرمهام پاس میدم
فکر کنم با این کار به اصول OOP هم توهین نکردم

AliRezaPro
سه شنبه 01 دی 1388, 09:02 صبح
سلام
من هر وقت یه متغیری بخوام که بیش از یه فرم رو قراره پوشش بده ، این متغیر رو بین فرمهام پاس میدم
فکر کنم با این کار به اصول OOP هم توهین نکردم
با تشکر از آرژنگ عزیز
[برادر من چرا به فروم سر نمیزنی آخه؟فکر نمیکنی دلمون برات تنگ میشه؟]
در دست رس گذاشتن مستقیم اشیاء در فرم ها کار اشتباهی است
برای این کار باید از کلاس و خاصیت استفاده کرد.

اَرژنگ
سه شنبه 01 دی 1388, 09:03 صبح
سلام
من هر وقت یه متغیری بخوام که بیش از یه فرم رو قراره پوشش بده ، این متغیر رو بین فرمهام پاس میدم
فکر کنم با این کار به اصول OOP هم توهین نکردم
در OOP متغییر مفهومی ندارد، فقط اشیا وجود دارند، وقتی که با اشیا کار میکنیم با خصوصیتهاشان (Property)، قابلیتهاشان (Interface)، نوعشان (Type)و اتفاقاتشان (Event) کار میکنیم.

به جایه اینکه بگیم چطوری یک کاری را انجام بدیم (نشان دادن یک مقدار در یک فرم)، باید از خودمان بپرسیم که با چه چیزی (شئی) داریم کار میکنیم.

اصل سوال اشتباه است، در شیگرائی نباید گفته بشه که "چطوری"، بلکه باید پرسیده بشه چه "چیزی"، منتها همه اصول را فراموش میکنند و به جوانب عارضی اهمیت میدن ، همین سمبل کردن یک کلاس برایه نگهداری مقادیری که از لحاض منطقی نباید در یک کلاس باشند مثالش است.

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

مثال، یکی پرسیده بود که چطوری نام کاربر را در همه فرمهایه برنامه نشان بده، که مثل همیشه از استاتیک استفاده کن جواب دادن و بنده خدا را گمراه کردن.
به جایه اینکه یکمی تامل به خرج بدند یک مقداری تفکر کنند که این چیزی که این بابا پرسیده برمیگرده به خصوصیات تمام فرمها در برنامه و جواب آشکارا معلوم است.

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

برنامه نویسی هم علم است و هم هنر، همینطوری نمیشه نه بدانه دلیل و یا درک برنامه‌نویس بود.

اَرژنگ
سه شنبه 01 دی 1388, 09:28 صبح
با تشکر از آرژنگ عزیز
[برادر من چرا به فروم سر نمیزنی آخه؟فکر نمیکنی دلمون برات تنگ میشه؟]
در دست رس گذاشتن مستقیم اشیاء در فرم ها کار اشتباهی است
برای این کار باید از کلاس و خاصیت استفاده کرد.
به شکل مختصر دکتر گفته از صفحه کامپیوتر دور باشم برایه سلامیتیم خوب نیست.:لبخند:

برایه اینکه میام پستهایه اینطوری میبینم فشار خونم میره بالا، بعضیها دنبال دین اند، بعضیها دنبال پول، بعضیها هنر و ... میام اینجا اشکالات را میبینم و نمیوتنم جلویه خودم را بگیرم چیزی نگم، بعدش هم دست به یخه میشیم با یکی که بهش بر میخوره و همینطوری یقه همدیگر را سر اینکه به مقدسات برنامه نویسی توهین شده میگریم و دور هم میچرخیم و میرقصیم و بزن بکوب راه میندازیم. به جز این فروم زمانم را برایه یادگیری و کار هم باید صرف کنم، و کم خوابی و سن بالا به هم نمیاند، ما دیگر جوان نیستیم که شب تا صبح برایه خودمان برنامه‌نویسی کنیم و در موردش حرف بزنیم و روز بعدش هم سر کار باشیم.



و اینکه میگید از اشیا استفاده کرد کاملا درست است، ، سوال این است که چه شئی به کار ایشان میاد.

slashslash2009
سه شنبه 01 دی 1388, 10:03 صبح
البته به نظر منم استاتیک همچین روش خوبی هم نیستا حافظه اشغال میکنه و از بینم نمیره ولی روش سریعیه:قلب: من دوسش دارم این روزا که دیگه کامپیوترا حداقلش حافظه کم نمیارن و ram زیادی هم دارن

M.YasPro
سه شنبه 01 دی 1388, 10:07 صبح
سلام
من هم جسارتا منظورم همون property بود
توی یه فرم پایه تعریف می کنم و بقیه فرم ها رو از اون ارث می برم
این هم کار اشتباهیه؟

ممنون از راهنمایی تون

sky_in_iran
سه شنبه 01 دی 1388, 10:10 صبح
استاد اَرژنگ (http://barnamenevis.org/forum/member.php?u=13535) با سلام خدمت شما و آرزوي سلامتي حرف شما درباره آموزش درسته اما شما بهتر از هركي ميدونيد برنامه نويسي تجربه و آزمايش و خطاست و يك نفر در طول سالها زياد يك برنامه نويسه حرفه اي ميشه اگر بنده يا دوستان راه كاري ميدن براساس اطلاعات در حال حاضر ماست نبايد انتظار داشته باشيد كه در حد شما كه استاد هستيد پاسخگو باشيم و تا الانم تو اين روشا به مشكل نخورديم و كارمون انجام شده والبته يك سوال از شما( ببخشيد قصد بي ادبي و اساعه ادب ندارم با اين سوال) شما از كجا اطمينان داريد روش شما درسته و بهينست ؟ ميشه دلايل و بفرماييد ؟ سوال من اينه براي ارسال اطلاعات بين فرمها اطلاعاتي كه از كاربر دريافت كرديم از چه روشي استفاده كنيم ؟

mandanim
شنبه 30 بهمن 1389, 16:29 عصر
سلام
آقاي ارژنگ
اگه كسي جوابي ميده دليل بر اين نيست كه طرف مقابل رو سنگ و قلاب كنه
هدفش كمكه به انساني كه در خواست كمك كرده
شما اگه مشكل فشار خون داري و مي خواهي باهاش مقابله كني بهتره طرف مقابل رو آگاه كني
نه اينكه فشار خونتو به بقيه نشون بدي و گردو خاك بلند كني
اگه راه حل داري يا علي و گرنه حرف زدن باد هواست كه اكثر آداما اين كاره هستن برادر

shima85
دوشنبه 14 شهریور 1390, 00:55 صبح
واسه اینکه بتونید از یک متغیر در تمام برنامتون استفاده کنید بهترین راه اینه که یک class بسازید و متغیرتون رو به صورت استاتیک تعریف کنید به این صورت :

static public string field1;و اینطوری بهش مقدار بدی
common.field1 = label27.Text;همینطور که میبینید مقدار یک لیبل رو بهش دادم پس میتونید نه تنها متغیر بلکه هر چیزی رو بهش بدین موفق باشد امیدوارم ساخت کلاس رو بلد باشید
comman نام کلاسم هست




سلاااااااام.من اي كارو كردم ولي بازم متغيرمو نشناخت
public partial class xx : Form
{
static public int ID;
}
اينجوري درسته؟؟؟ميخوام از ID تو چنتا فرم استفاده كنم!!

gwbasic
دوشنبه 14 شهریور 1390, 12:28 عصر
سلاااااااام.من اي كارو كردم ولي بازم متغيرمو نشناخت
public partial class xx : Form
{
static public int ID;
}
اينجوري درسته؟؟؟ميخوام از ID تو چنتا فرم استفاده كنم!!

خوبه دوستمون آرژنگ نیست که ببینه شما این تاپیکو از زیر خاک در آوردین و دوباره بحث static رو مطرح می کنین
البته من زیاد سخت نمی گیرم بیشتر دوست دارم کسی که تازه کار و یا هر سوالی که داره به همون سوال جواب بدم ولی به هر حال اشتباه که سوال کامل مطرح نشه و جواب بخواین. بهتره اول نیازتون رو مطرح کنین تا یه راهکار خوب براش پیدا کنین!
این ID که می گین برای چی هست چون ID متعلق به یه شی هست که برای درون اون قرار داشته باشه نه اینکه جدا نگهداری بشه اونهم توی یک فرم

در هر صورت هر فیلد یا پراپرتی ای که به صورت استاتیک تعریف بشه با نام کلاس قابل دسترسی هست

linux
دوشنبه 14 شهریور 1390, 22:59 عصر
سلام
قول بدين به من نخندين آخه من خيلي مبتدي ام
مرسي
1-چطوري يه متغير تعريف كنم تا بتونم تو چند تا فرم از اون استفده كنم.
ممنون ميشم جواب بدين
هرکجا به همچین چیزی رسیدی مطمئن باش در طراحی نرم افزارت دچار مشکل شدی.