تبليغاتX
وبلاگ شخصی احمد اکبری
برای همه ی نوجوانان وجوانان ایرانی

فرض کنيد بخواهيم فرمی داشته باشيم که دارای دو Text Box (که در VB برای عمليات دريافت اطلاعات از کاربر (DataEntrq) معمولاً از اين کنترل استفاده می شود) برای درجه سيلسيوس و درجه فارنهايت باشد و توسط يک دکمه (و در واقع با فشردن آن توسط کاربر) مقداری که در Text box مربوط به درجه سيلسيوس نوشته شده بود را به فارنهايت تبديل کند و نتيجه را در Text Box مربوط به آن درج نمايد. (توجه: اگر  Cمقدار درجه برحسب سيلسيوس و F مقدار درجه برحسب فارنهايت باشد، تبديل سيلسيوس به فارنهايت از فرمول F=9/5 C+32 محاسبه می شود). شکل نهايی فرم را می توانيد در شکل 4 ببينيد.


figure 4


 


برای اين منظور، از جعبه ابزار (جعبه حاوی کنترلها) ، دو برچسب (Label) که در جعبه ابزار به شکل ديده می شود را بر روی فرم قرار می دهيم(برچسب(Label) ها در VB معمولاً زمانی استفاده می شود که بخواهيم بر روی فرم، عبارتی را به کاربر نشان دهيم که او قابليت تغيير آن را نداشته باشد.) آنها را بوسيله Drag & Drop به مکان دلخواه منتقل می کنيم و برای يکی از آن دو:


1-    مشخصه Name را به lblCelsius


2-    مشخصه Caption  را به Celsius


و برای ديگری:


1- مشخصه Name را به lblFahrenheit


2- مشخصه Caption را به Fahrenheit


تغيير می دهيم. توجه داريم که در نامگذاری Label ها با سه حرف اول lbl آغاز کرده ايم. همچنين توجه داريم که در شکل 4 ، بر روی فرم، عبارات Celsius و Fahrenheit در واقع همين دو Label هستند.


نکته: برای Label هايک مشخصه (Property) ديگر به نام Auto Size وجود دارد که اگر مقدار آن را به True تغيير دهيم، اندازه (size) آن به طور اتوماتيک به اندازه متن (caption) داخل آن خواهد شد و بنابراين معمولاً بهتر است اين مشخصه را نيز set کنيم.


حال دو Text Box (جعبه متن) در مقابل اين Label (Text Box ها در جعبه ابزار به شکل ديده می شوند، معمولاً برای نمايش و دريافت اطلاعات به طور توأم به کار می رود (بر عکس Label ها که فقط وظيفه نمايش اطلاعات را به عهده داشتند) و خصوصاً برای فرمهای DataEntrq (دريافتی اطلاعات) بسيار مناسب هستند. پروژه فعلی ما، نمونه ای کوچک از فرمهای DataEntrq است) و مناسب با هر يک از برچسب ها، برای يکی از آن دو Text Box :


1-    مشخصه Name رابه txtCelsius تغيير می دهيم.


2-    مشخصه Text را خالی می کنيم.


و برای ديگری:


1_ مشخصه Name را به txtFahrenheit تغيير می دهيم.


3-    مشخصه Text را خالی می کنيم.


واضح است که در نامگذاری TextBox ها نيز از قرارداد سه حرف اول متناسب با نوع شئ، استفاده کرديم و سه حرف اول آنها را txt گذاشتيم.


مشخصه Text در Textbox ها آن متنی است که داخل آن متنی است که داخل آن نوشته می شود(شبيه مشخصهCaption در Label ها) و چونقرار است کاربرما آن را وارد کند، آن را خالی (NULL) کرديم.


حال يک دکمه (Command button) نيز به فرم اضافه و:


1-    مشخصه Name را به cmdConvent


2-    مشخصه Caption را به convent


تغيير می دهيم.


خوب، ظاهر (Interface) برنامه آماده شد. حال به کدنويسی برای آن می پردازيم. اين اولين باری است که می خواهيم در زمان اجرا (Run Time) از مشخصه ای استفاده کنيم (مشخصه Text از txtCelsiusکه توسط کاربر وارد شده) و مشخصه ای را در اين حال (Run Time) تغيير دهيم (مشخصه Text ازtxtFahrenheit که بايد نتيجه را بنويسد)


در VB هنگام کدنويسی برای Run Time هر زمان بخواهيم از يک Object استفاده کنيم، کافی است نام (Name) آن را بنويسيم و اگر بخواهيم به يکی از مشخصه های آن دست يابيم، کافی است پس از نام آن يک نقطه (Dot) قرار دهيم و سپس نام مشخصه (Property) مورد نظر خورد را بنويسيم.


با توجه به اين مطلنب، ديگر نوشتن کدهای مثال فوق کار چندان دشواری نيست. اگر بر روی دکمه Convent (البته در Design Time ) دابل کليک نماييد، در اينصورت Procedure مربوط به رويدادِ(Event) کليک از آن باز می شود که کافی است در آن نوشته شود:


txtFahrenheit.Text = (9/5*txtCelsius.Text) + 32


يعنی Procedure بايد به شکل زير شود:


 


Private Sub cmdConvent_Click ()


     txtFahrenheit.Text = (9/5*txtCelsius.Text) +32


End Sub


 


واضح است که وقتي مشخصه Text از يک Text Box در سمت يک تساویِ جايگزينی قرار می گيرد، مقدار فعلی آن در عمليات شرکت می کند و وقتی اين مشخصه در سمت چپ اين جايگزين قرار می گيرد، مقادير محاسبه شده در آن قرار می گيرد.
بنابراين، Procedure فوق می گويد که وقتی بر روی دکمه Convent کليک شد، هر مقداری که کاربر، داخل جعبه Celsius نوشته باشد را در 9/5 ضرب و با32 جمع کن و مقدار نهايی را داخل جعبه مربوط به Fahrenheit بنويس.
اين برنامه را حتماً بنويسيد، آن را اجرا منيد و با نحوه استفاده از Property ها در اين کدنويسی بری Run Time آشنا شويد. در ادامه، بيشتر با اين نوع استفاده از Property ها (يعنی set کردن در کدنويسی بجای set کردن در پنجره Properties از Design Time) مواجه خواهيم شد. و مهم است که اين نوع استفاده را خوب درک کنيم.
نکته: مشخصه Text برایText Box ها و مشخصه Caption برای Label ها، مشخصه های پيش فرض آنها محسوب می شوند و اگر نام آنها را بدون هيچ مشخصه ای بنويسيمف اين مشخصه ها در نظر گرفته می شود، اذا مثلاً در Procedure بالا می توانستيم بجای txtCelsius.Text از خود txtCelsius نيز استفاده کنيم.

+ نوشته شده در  چهارشنبه هفتم اسفند 1387ساعت 2:12  توسط اکبری  | 
به عنوان اولين پروژه، قصد داريم فرمی داشته باشيم با دو دکمه Message و Exit که اگر در دکمه Message کليک شد، پيغامی نمايش داده شود و اگر دکمه Exit کليک شد از برنامه خارج شود(شکل3):

Figure 3


ابتدا فرمی که بر روی صفحه نمايش باز است (فعلاً به نام Form 1 ) را به اندازه دلخواه در می آوريم و در حالی که Select است، از پنجره Properties (سمت راست تصوير) ، مشخصه (Property) های زير را چنين Set می کنيم:


1-    مشخصه Name آن را به frmFirstProject تغيير می دهيم.


2-    مشخصه Caption آن را به First Project تغيير می دهيم.


مشخصه Caption معمولاً عنوانها را تغيير می دهد. مثلاً در مورد فرمها، آنچه در اين مشخصه Set شود در Title Bar از آن فرم ديده می شود يا در مورد دکمه ها، آنچه در اين مشخصه قرار داده شود، آن چيزی است که بر روی دکمه ( به عنوان نام دکمه ای که ُکاربر می بيند) ديده می شود.


مشخصه Name يکی از مهمترين مشخصه هايی است که بايد برای تمام کنترلها Set شود. آنچه در اين مشخصه قرار گيرد، نامی است که VB آن کنترل را به اين نام می شناسد (و خصوصاً در هنگام کدنويسی و برای دسترسی به کنترلها، بسيار مورد استفاده واقع می شود). به طور پيش فرض VB برای هر کنترل يک Name در نظر می گيرد، اما در پروژه های واقعی ، معمولاً تعداد کنترلها آنقدر زياد می شوند که نامهای پيش فرض به سختی در ذهن می ماند. برای اين منظور بهتر است به کنترلها، نامهايی را نسبت دهيم که از جهتی با او متناسب باشد. لذا بهتر است اولاً در نام آنها چيزی باشد که نشان از نوع آن کنترل باشد و عبارتی نيز باشد که بيانگر موضوع يا کار فعلی آن باشد. به عنوان مثال شما می بينيد که ما در مشخصه Name از form ، گفتيم که قرار دهيم: frmFirstProject که frm به خاطر تشخيص Form بودن آن است و First Project به خاطر تشخيص اينکه اين فرم برای First Project است. يا مثلاً به فرض اگر بخواهيم دکمه ای به نام Exit بر روی فرمی داشته باشيم، من ترجيح می دهم که نام آن را cmdExit بگذارم که cmd را از Command Button گرفته ام. توجه داريم که اين نامی است که VB آن را می شناسد وگرنه برای زيبايی کار Caption اين دکمه را همان Exit می گذاريم و اين نام گذاری به زيبايی پروژه ما لطمه ای وارد نمی کند.


برای ادامه، دو دکمه (Command Button) بر روی فرم قرار می دهيم (که برای اين منظور از پنجره Controlها که در سمت چپ تصوير است، کنترل Command Button به شکل را دابل کليک می کنيم و يا با يک Click و انتخاب آن، بر روی فرم، به اندازه دلخواه Drag & Drop می کنيم) و جای آنها را به مکان دلخواه مورد نظر (به وسيله Drag & Drop آنها) تغيير می دهيم. آنگاه برای يکی از آنها:


1-    مشخصه Name را به cmdMessage تغيير می دهيم.


2-    مشخصه Caption را به Message تغيير می دهيم.


و برای ديگری تغيير می دهيم:


1- مشخصه Name را به cmdExit .


2- مشخصه Caption را به Exit .


که پس از اين، شمای ظاهری (Interface) برنامه کامل شده است و بايد به کدنويسي آن پرداخت.


اگر بر روی دکمه Exit دابل کليک کنيد (البته هنوز در Design Time هستيم و نه Run TimeEvent Procedure مربوط به رويداد Click (Event) از آن را به صورت زير باز می کند:


 


Private Sub cmdExit_Click ()


 End Sub


 


که هر دستوری که در اين Procedure (يعنی بين خط Private و خط End Sub) نوشته شود، در زمان اجرا، وقتی کاربر روی دکمه Exit کليک می کند، اين دستورات اجرا خواهند شد.


دستوری که بايد در cmdExit_Click نوشته شود بسيار ساده است:


 


Private Sub cmdExit_Click ()


     End


End Sub


 


دستور End هر جايی از برنامه که اجرا شود فوراً اجرای برنامه را متوقف و از آن خارج می شود.


حال اگر به ترتيبی که در بالا ذکر شد، Event Procedure مربوط به رويداد click از دکمه Message را نيز باز می کنيم و آن را به صورت زير تغيير می دهيم:


 


Private Sub cmd, Message - Click


     MsgBox “The first project was done successful” و و  “Thanks”


End Sub


 


پروژه مورد نظر آماده شده شده است. دستور MsgBox (مخفف Message Box )باعث می شود تا يک کادر پيغام بر روی صفحه نمايش ظاهر شود و تا زمانی که دکمه OK از آن را فشار دهيم، پيغامی را نمايش دهد. در اين دستور پارامتر اول، پيغام مورد نظر را به صورت string (يک داده متنی) دريافت مي کند (در VB هر عبارتی که بين دو علامت " " قرار گيرد، string فرض می شود) و پارامتر سوم نيز به عنوان Message Box (که در Title Bar آن آورده خواهد شد) را به صورت متنی دريافت می کند. توجه داريم که بين هر دو پارامتر از علامت کاما (,) استفاده می کنيم و بنابراين در دستور MsgBox برنامه مان برای اينکه پس از پارامتر اول، پارامتر سوم را وارد کنيم بين آن دو پارامتر، دو بار کاما گذاشته ايم.


حال برنامه تان را اجرا کنيد و نتيجه کار را ببينيد (اجرای برنامه در VB توسط کليد F5 صورت می گيرد.


ذکر چند نکته:


1-    اگر بخواهيد فشردن ALT+X همان عمل دکمه Exit را انجام دهد(ايجاد(Hot key) ، کافی است در Caption اين دکمه چنين بنويسيد: E&xit که در اين صورت در زمان اجرا، زير حرف x يک underline (زير خط) می کشد که در ويندوز اين حالت نشانگرHot key داشتن آن حرف است ، همين کار را هم در مورد دکمه Message انجام دهيد.


2-    در هنگام کدنويسي اگر چند حرف اول يک کلمه شناخته شده VB (مانند نام کنترلها و يا Property ها، Method ها و ...) را بنويسيم و CTRL+Space را فشار دهيم، اگر تنها يک کلمه با حرف اول برابر آنچه شما نوشته ايد پيدا کند، بقيه حروف را خود، کامل می کند و اگر تعدادی کلمه با اين مشخصات پيدا کند، ليست آنها را نمايش می دهد که می توانيد يا يکی از آنها را انتخاب کنيد (بر روی کلمه از ليست برويد و کليد space را بزنيد) و يا تعدادی از حروف آن را بنويسيد تا محدوده کلمات مشابه کوتاهتر شود. اين کار را حتماً امتحان کنيد!


3-    زمانی که يک فرم باز می شود، به ترتيب چهار Event بر روی آن رخ می دهد:
















  Initialize 


Load


 Activate


 Got focus


که زمانی که رويداد اول رخ می دهد، هنوز object های روی فرم ايجاد نشده اند و قابل دسترسی نيستند. اين object ها در load ساخته می شوند، اما هنوز فرم نمايش داده نشده است. وقتی فرم نمايش داده می شود، رويداد Activate و وقتیfocus به آن داده می شود، رويداد Got focus روی مي دهد. (منظور از گرفتن focus اينست که آن کنترل خاص که در اينجا فرم است، کانون تمام پيامها شود، مثلاً اگر کليدی زده شد به آن فرستاده شود و ...).


4-    برای ذخيره کردن پروژه از منوی فايل و گزينه Save استفاده می شود که بايد تمام فرمها، ماژولها، ... و اصل پروژه را جداگانه ذخيره کرد. لذا اگر شما برنامه First Project راsave کنيد، يکبار نام فرم را save می کند (با پسوند.frm) و يکبار فايل پروژه را (با پسوند.VBP

+ نوشته شده در  چهارشنبه هفتم اسفند 1387ساعت 2:10  توسط اکبری  | 

بارون و دوست دارم هنوز ... چون تو رو یادم میاره
حس می کنم پیشه منی ... وقتی که بارون می باره ....
دریاب! بازم تنهام



بهت نگفتم تا حالا اینکه چقد دوست دارم اما حالا بهت می گم بی تو دارم کم می یارم
بهت نگفتم تا حالا که بدجوری عاشقتم بهت نگفتم تا حالا اما حالا بهت می گم ...


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



رفیق من سنگ صبور غمهام / به دیدنم بیا که خیلی تنهام
هیشکی نمی فهمه چه حالی دارم / چه دنیای رو به زوالی دارم
مجنونم و دل زده از خیلیا / خیلی دلم گرفته از خیلیا ...


ميدوني فرق تو با خون چيه؟
خون ميره تو قلب و برميگرده
اما تو ميري تو قلب و برنميگردي



شراب را دوست دارم چون رنگ خون است خون را دوست دارم چون در رگ جريان دارد رگ را دوست دارم چون به قلب راه دارد قلب را دوست دارم چون جايگاه توست


خوام بگم قدر 1 دنيا دوست دارم چون دنيا 1روز تموم مي شه نمي خوام بگم سياهي چشات مثل شب پر ستاره است چون شب هم بالاخره تموم مي شه نمي خوام بگم دوست دارم چون دوست ندارم بلكه عاشقتم


سلام ببخشيد از اداره هواشناسی مزاحم مشوم اينجا کسی دلش هواتون را کرده چه کار بايد بکنه؟


امروز همان فردای است که ديروز منتظرش بودی


تو هديه الهی از خداوندی برای سينه پر دردمن:عطر وجودت را برای شفا می بويم..........!
ای شلغم


خدايا شاهد تنهايي ام باش بين غم ها تنها ناجي ام باش پر پرواز من ديريست بسته تو بگشا و در آزادي ام باش اسير موج هاي تند خشمم تو آرام دل دريايي ام باش دل خسته خريداري نداره تو خواهان صفاي ذاتي ام باش در اين آشفته بازار محبت تو تنها شاهد ارزاني هم باش


ای که دور از منی و یاد منی،با خبر باش که دنیای منی...شادیت شادی من،غصه ات غصه من...قلب من خانه تو خانه ات قبله من دوست دارم


آسمان رنگ خدا گشت بيا پر بزنيم
باغ خورشيد پراز چلچله ها گشت بيا سر بزنيم
فصل مهمان شدن پنجره ها يادت هست
پشت در جاي غريبيست بيا در بزنيم
يک نفر باز مرا در خود من مي خواند
پر پرواز نداريم که پرپر بزنيم
باز از مزرعه من بوي علف مي شنوم
جاي پروانه چه خاليست بيا پر بزنيم



دلا ياران سه قسم اند گر بداني زباني اند و ناني انـد و جـاني به نـاني نان بده از در برانـش تو نيـکي کن يه ياران زبـاني وليـکن يـار جـاني را نگهدار به پـايش جـان بده تا مي تواني


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



ميدوني فرق لبخند تو با لبخند من چيه ؟ تو وقتي شادي ميخندي،من وقتي تو شادي ميخندم


سهم من از دوري تو چيزي جز دلتنگي به اندازه درياها ،نگاهي تاريك همچون شب هاي بدون مهتاب و لحظه هايي كه ثانيه به ثانيه ميگذرند نيست .پس اي دوست بشنو صداي دلتنگي مرا


طبق قانون بقاي شادي هيچ شادي از بين نميره؛ بلكه فقط از دلي به دلي ديگه جابه جا مي‌شه


در غريبي ناله ها کر دم کسي يادم نکرد ، در قفس جاندادم و صياد ازادم نکرد، ضربه مردم چنان از زندگي سيرم نمود، آرزوي مرگ کردم مرگ هم يادم نکرد
+ نوشته شده در  پنجشنبه یکم اسفند 1387ساعت 23:3  توسط اکبری  |