
در این محصول بازی مین یاب به وسیله زبان C# در نرم افزار مایکروسافت وِیژوال استادیو طراحی و پیاده سازی شده است
سورس بازی مین یاب در ویژوال استادیو
در این محصول بازی مین یاب به وسیله زبان C# در نرم افزار مایکروسافت وِیژوال استادیو طراحی و پیاده سازی شده است
کار با کنترل winsock
کنترل winsock به شما اجازه می دهد به یک ماشین راه دور متصل شده و داده ها را با استفاده از پروتکل TCP و UDP مبادله کنید. هر دو پروتکل می توانند برای برنامه های client و server استفاده شوند.
موارد استفاده :
ساختن یک برنامه client که اطلاعات کاربر را قبل از فرستادن به سمت server جمع آوری می کند.
ساختن بک برنامه server که به عنوان بک نقطه مرکزی مجموعه برای داده های چندین کاربر می باشد.
ساخت یک برنامه chat
و موارد دیگر ...
Socket :
عاملی است برای برنامه نویسی تحت اینترنت که از طریق آن دو برنامه ، دو پروسه در شبکه مشخص می شوند .بنابراین اطلاعات ارسال شده یا دریافت شده از طریق این شماره منحصر به فرد یا عامل منحصر به فرد مسیر خود را پیدا می کند.
انتخاب یک پروتکل :
وقتی از کنترل winsock استفاده می کنید باید به این مسئله رسیدگی کنید که کدامیک از پروتکل های TCP و UDP را می خواهید استفاده کنید . تفاوت اصلی بین این دو در حالت اتصال آنها می باشد :
پروتکل TCP یک پروتکل اتصال – پایه است و مانند تلفن کاربر باید قبل از اقدام به ارسال اطلاعات یک ارتباط ایجاد کند.
پروتکل UDP یک پروتکل بدون اتصال است و مبادله اطلاعات بین دو کامپیوتر مانند ارسال پیغام است : یک پیغام از یک کامپیوتر برای یکی دیگر ارسال می شود اما ارتباط بین آن دو واضح نیست . حداکثر اندازه داده ارسال شده به صورت منحصر به فرد ، بوسیله شبکه تعیین می شود .
ساخت یک client :
وظیفه برنامه client side application : فرایند یا برنامه ای که در سمت مشتری برای استفاده از یک سرویس وب اجرا می شود .
عملیاتی که توسط client side application انجام می شود:
در خواست اتصال به برنامه server (عمل connect )
عمل ارسال اطلاعات به سمت server
دریافت اطلاعات از server
1- برای شروع سا خت برنامه client ابتدا ویژوال بیسیک را باز کرده و یک پروژه استاندارد را انتخاب و سپس آنرا باز می کنیم
2- سپس در قسمت ابزار راست کلیک کرده و گزینه components... را انتخاب می کنیم .
3- از صفحه ای که باز می شود گزینه Microsoft WinSock Control 6 را انتخاب می کنیم
4- بعد از زدن دکمه ok دو کامپیوتر کوچک پشت سرهم در کنار نوار ابزار پدیدار می شوند .
5- سپس روی آن کلیک کرده و آنرا برروری فرم خود قرار دهید . نام آنرا به sockc تغییر دهید .
Winsock یکی از ابزارهای برقراری ارتباط از طریق پورتهای TCP و UDP بین server و client در ویژوال بیسیک می باشد . تقریبا تمام ارتباطات استاندارد در ویژوال بیسیک از این طریق انجام می گیرد .
6- بعد از انجام مراحل بالا 5 Textbox به فرم مورد نظر خود اضافه می کنیم
سپس بر روی فرم مورد نظر خود دو بار راست کلیک می کنیم تا وارد محیط کد نویسی شویم . سپس در form_load( ) برنامه خود کدهای زیر را اضافه می کنیم .
Private Sub cmdConnect_Click()
If sockc.state = 0 Then
sockc.RemoteHost = txtip.Text
sockc.RemotePort = txtport.Text
sockc.Connect
Label3.Caption = status(sockc.state)
txtsend.SetFocus
Else
sockc.Close
Label3.Caption = status(sockc.state)
End If
Label3.Caption = status(sockc.state)
End Sub
تنظیم پروتکل :
برای تنظیم پروتکل شما می توانید از یکی از دو حالت sckTCPProtocol و sckUDPProtocol استفاده کنید که ما در اینجا از خاصیت sckTCPProtocol استفاده کرده ایم .
مشخص کردن نام کامپیوتر :
برای اتصال به کامپیوتر راه دور شما باید IP ویا نام دوستانه آنرا بدانید. IP کامپیوترهای شخصی 127.0.0.1 می باشد که این رشته را به عنوان مقدار برای خاصیت RemoteHost قرار می دهیم .
مشخص کردن پورت کامپیوتر ها :
برای اینکه کامپیوتر های راه دور بتوانند با یکدیگر ارتباط برقرار کنند بایستی یک شماره پورت برای نرم افزارهای دو طرف یعنی client و server انتخاب می کنیم که در واقع نرم افزارها از طریق این پورت با یکدیگر ارتباط برقرار می کنند .و این پورت به عنوان ورودیها و خروجیهای دو نرم افزار عمل می کند که ما در اینجا مقدار خاصیت RemotePort را برابر رشته 5050 قرار داده ایم .
سپس مقدار دو socks.protocolو socks.local port را به ترتیب برابر با 127.0.0.1 و 5050 قرار داده ایم که وقتی برنامه client اجرا می شود برای کاربر مشخص شود که برنامه بر روی چه IP و پورتی کار می کند .
بعد از این کار مقدار را برابر مقداری که یک تابع بر می گرداند قرار داده ایم . کار این تایع به این صورت است که در هر لحظه وضعیت برنامه client را مشخص می کند در واقع sockc.state داخل پرانتز یک عدد را برمی گرداند .
تعریف تابع status :
unction status(state As Integer)
Select Case state
Case 0
status = "closed"
Case 1
status = "open"
Case 2
status = "listening..."
Case 6
status = "connecting..."
Case 7
status = "connected"
Case 9
status = "ERROR"
End Select
End Function
در اینجا برای انتخابهای 0 تا 9 مقدار status را با یک پیغام مناسب مقدار دهی کرده ایم .
کد برنامه
Chat 1-Chat 1
----------------------------------
Client
----------------------------------
Option Explicit
Private Sub cmdClose_Click()
sockc.Close
End Sub
Private Sub cmdConnect_Click()
If sockc.state = 0 Then
sockc.RemoteHost = txtip.Text
sockc.RemotePort = txtport.Text
sockc.Connect
Label3.Caption = status(sockc.state)
txtsend.SetFocus
Else
sockc.Close
Label3.Caption = status(sockc.state)
End If
Label3.Caption = status(sockc.state)
End Sub
Private Sub cmdSend_Click()
If sockc.state = sckConnected Then
sockc.SendData txtsend.Text
Label3.Caption = "Sending Data"
Else
Label3.Caption = "Not connected to host"
End If
End Sub
Private Sub sockc_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
sockc.GetData sData,vbString
txtget.Text = sData
Label3.Caption = "Received Data"
End Sub
Private Sub sockc_SendComplete()
Label3.Caption = "Data Send"
End Sub
Function status(state As Integer)
Select Case state
Case 0
status = "closed"
Case 1
status = "open"
Case 2
status = "listening..."
Case 6
status = "connecting..."
Case 7
status = "connected"
Case 9
status = "ERROR"
End Select
End Function
Server
-------------------------------------
Function Status (State As Integer)
Select Case state
Case 0
status = "closed"
Case 1
status = "open"
Case 2
status = "listening..."
Case 6
status = "connecting..."
Case 7
status = "connected"
Case 9
status = "ERROR"
End Select
End Function
Private Sub Form_Load()
socks.Protocol = sckTCPProtocol
socks.LocalPort = 5050
socks.listen
lblhost.Caption = socks.LocalHostName
lblip.Caption = socks.LocalIP
lblstatus.Caption = status(socks.state)
End Sub
Private Sub listen_Click()
If socks.state = sckClose Then
socks.listen
Else
socks.Close
End If
lblstatus.Caption = status(socks.state)
End Sub
Private Sub Send_Click()
If socks.state = sckConnected Then
socks.SendData sendtxt.Text
Else
MsgBox "Not Connected To Server Please Check Again", vbExclamation, " ALERT"
End If
lblstatus.Caption = status(socks.state)
End Sub
Private Sub socks_Close()
socks.Close
socks.listen
lblstatus.Caption = status(socks.state)
End Sub
Private Sub socks_ConnectionRequest(ByVal request ID As Long)
socks.Close
socks.Accept request ID
lblstatus.Caption = status(socks.state)
End Sub
Private Sub socks_DataArrival(ByVal bytesTotal As Long)
Dim data As String
socks.GetData data
gettxt.Text = data
lblstatus.Caption = status(socks.state)
End Sub
Chat 1-Chat n
-----------------------------------
client
-----------------------------------
Private Sub Command1_Click()
If Winsock1.State = sckClosed Then
Winsock1.Connect
Else
Winsock1.Close
End If
End Sub
Private Sub Command2_Click()
If Winsock1.State = sckConnected Then
Winsock1.SendData Text1.Text
Else
MsgBox ("connection does not valid")
End If
End Sub
Private Sub Form_Load()
Winsock1.RemoteHost = "localhost"
Winsock1.RemotePort = 1001
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strdata As String
Winsock1.GetData strdata
Text2.Text = strdata
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer,Description As String, ByVal
Scode As Long,ByVal Source As String,ByVal HelpFile As String,ByVal HelpContext As Long,CancelDisplay As Boolean)
MsgBox "socket on ( " & Form1.Caption & " )ERROR : " & Description
Winsock1.Close
End Sub
Server
-----------------------------------
Private intmax As Long
Private Sub Command1_Click()
Winsock1(Val(Text3.Text)).SendData Text1.Text
End Sub
Private Sub Form_Load()
intmax = 0
Winsock1(0).LocalPort = 1001
Winsock1(0).Listen
End Sub
Private Sub Winsock1_Close(Index As Integer)
Unload Winsock1(Index)
End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer,ByVal request ID As Long)
If Index = 0 Then
intmax = intmax + 1
Load Winsock1(intmax)
Winsock1(intmax).LocalPort = 0
Winsock1(intmax).Accept request ID
Load Text2(intmax)
End If
End Sub
Private Sub Winsock1_DataArrival(Index As Integer,ByVal bytesTotal As Long)
Dim strdata As String
Winsock1(Index).GetData strdata
Text2(Index).Text = strdata
List1.AddItem Text2(Index).Text & "-->" & Str(Index)
Text3.Text = Index
End Sub
درارتباط با پروژه
توضیحات کد برنامه:
Client
----------------------------------
Option Explicit
Private Sub cmdClose_Click()
sockc.Close
End Sub
این تابع برای این است که تمام client ها را ببندد وبعد ادامه کاررا انجام دهد.
Private Sub cmdConnect_Click()
If sockc.state = 0 Then
sockc.RemoteHost = txtip.Text
sockc.RemotePort = txtport.Text
sockc.Connect
Label3.Caption = status(sockc.state)
txtsend.SetFocus
Else
sockc.Close
Label3.Caption = status(sockc.state)
End If
Label3.Caption = status(sockc.state)
End Sub
در اینجا وضعیت client را بررسی می کندکه آیا از قبل connect هست یا نه.اگرconnect باشدآنرا می بندد( closed ).
از sockc.RemoteHost = txtip.Text sockc.RemotePort = txtport.Text برای شناسایی port و نمایش آدرس شخص فرستنده به صورت رشته استفاده می شود.
بعد connect می شود.
txtsend.SetFocus در واقع ایجاد یک ناظر بین client و server می باشد که نظاره گر آن ها می باشدومراقب ارسال و دریافت داده ها است.
در غیراینصورت client را می بندد.
Private Sub cmdSend_Click()
If sockc.state = sckConnected Then
sockc.SendData txtsend.Text
Label3.Caption = "Sending Data"
Else
Label3.Caption = "Not connected to host"
End If
End Sub
بررسی می کند که آیا وصل( connected ) هست یا نه.
اگروصل بود داده را به صورت متن ارسال می کند وبرچسب sending data نمایان می شود.
در غیراینصورت برچسب Not connected to host ظاهر می گردد.
Private Sub sockc_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
sockc.GetData sData,vbString
txtget.Text = sData
Label3.Caption = "Received Data"
End Sub
این تابع برای تعریف متغیرها استفاده می شود.
درآن آرایه ای با نام sData تعریف شده و خروجی آن رشته می باشد.
وجهت مرتبط ساختن به sockc از GetData استفاده می کند.در اینجا دو متغیر sData,vbString داریم.
خروجی آن از نوع متن می باشد.
وهنگامی که داده را دریافت می کند برچسب Received Data نمایان می شود.
Private Sub sockc_SendComplete()
Label3.Caption = "Data Send"
End Sub
این تابع برای ارسال است.هنگامی که داده فرستاده می شود برچسب Data Send نمایان می شود.
Function status(state As Integer)
Select Case state
Case 0
status = "closed"
Case 1
status = "open"
Case 2
status = "listening..."
Case 6
status = "connecting..."
Case 7
status = "connected"
Case 9
status = "ERROR"
End Select
End Function
این تابع جهت بررسی وضعیت می باشد.
اگر 0 بود آن را می بندد
اگر 1 بود آن را باز می کند
اگر 2 بود وقفه ایجاد می کند......وبه همین ترتیب تا آخر.
Server
------------------------------------
Function Status (State As Integer)
Select Case state
Case 0
status = "closed"
Case 1
status = "open"
Case 2
status = "listening..."
Case 6
status = "connecting..."
Case 7
status = "connected"
Case 9
status = "ERROR"
End Select
End Function
همانطور که گفته شد این تابع بررسی وضعیت می باشد.
Private Sub Form_Load()
socks.Protocol = sckTCPProtocol
socks.LocalPort = 5050
socks.listen
lblhost.Caption = socks.LocalHostName
lblip.Caption = socks.LocalIP
lblstatus.Caption = status(socks.state)
End Sub
می دانیم که دو نوع پروتکل وجود دارد. UDP و TCP IP .
که در UDP نیازی به اتصال نمی باشدولی در TCPIP می بایست حتما ارتباط یا عدم ارتباط بررسی شود.
دراین برنامه
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 82 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید
مقدمه
visual Basic (که زین پس آن را VB خواهیم خواند) از زبانهای برنامه نویسی تحت Windows می باشد که برای کدنویسی از دستورات زبان Basic سود می برد.
VB (مانند تمام زبانهای برنامه نویسی تحت ویندوز) با استفاده از تمام امکانات زیبای ویندوز (که باعث فراگیرشدن این سیستم عامل زیبا و توانمند در میان کاربران شده است)، طراحی محیطی زیبا و قدرتمند را برای پروژه مورد نظر، بسیار ساده می نماید.
در حال حاضر، به جرأت می توان گفت که یکی از انتخاب های اصلی برنامه نویسان حرفه ای در سطح جهان برای تهیه پروژه های با قابلیت های ویژه، VB می باشد، خصوصاً از VB6 که مایکروسافت عملاً با افزودن توانایی های متنوع بسیار به VB، حتی حاضر شد از دیگر زبانهای معروف تحت ویندوز خود مانند Visual C++ و Visual Foxpro بگذرد و سعی در هدایت تمام برنامه نویسان به سوی VB داشته باشد.
در حال حاضر که به تهیه این جزوه همت گماردم، نسخه آزمایشی VB.net در بازار وجود دارد ولی عموماً برنامه نویسان ازVB6 استفاده می کنند و لذا ما نیز این نسخه ازVB را برای آموزش انتخاب می کنیم، هر چند تمام خوانندگان عزیز می دانند که عموماً با فراگیری یک نسخه از یک برنامه، فراگیری نسخه های بعدی آن کار چندان دشواری نخواهد بود.
هنگامی که VB اجرا می شود، توسط پنجره ای (شکل1)، نوع پروژه ای که می خواهید طراحی کنید از شما خواسته می شود.
همان طور که ملاحظه می فرمایید، انواع مختلفی از پروژه ها در این پنجره وجود دارد که در ادامه به برخی از آنها خواهیم پرداخت، ولی فعلاً نوع استاندارد پروژه های VB یعنی نوع Standard EXE را انتخاب و آن را باز(Open) می کنیم. این نوع پروژه (که غالب پروژه ها را در بر می گیرد) برای تهیه برنامه های کاربردی(Applications) مورد استفاده قرار می گیرد.
پس از باز کردن پروژهStandard Exe ، پنجره اصلیVB (شکل 2 ) برای این نوع پروژه باز می شود:
این پنجره، علاوه بر آنچه عموماً در پنجره های ویندوز می بینیم (مانند Title Bar وMenu Bar)، شامل چند بخش بسیار مهم می باشد:
1- یک فرم(Form) خالی با عنوان (Caption)برابر Form1 وجود دارد. این همان فرمی است که بلافاصله پس از اجرا (Run) شدن برنامه، روی صفحه نمایش، قرار می گیرد (این پیش فرض قابل تغییر است).
2- نوار ابزار Standard Buttons که دکمه هایی با کاربرد معمولاً بیشتر را شامل می شود. تعدادی از این دکمه ها را در ویندوز می شناسید (مانند Copy, Paste, Undo, Redo, Open وSave) و برخی دیگر را در ادامه خواهیم دید.
3- پنجره ای سمت چپ تصویر دیده می شود. این پنجره شامل برخی از کاربردی ترین کنترلهای قابل دیدن (VCL) می باشد. در ادامه با VCLها آشنا خواهیم شد و از آنها بسیار بهره خواهیم برد. به این پنجره Tool Bar (جعبه ابزار) گفته می شود.
4- در سمت راست تصویر سه پنجره دیگر دیده می شود. در بالا، پنجره پروژه (Project)، سپس پنجره مشخصات(Properties) و در پایین، پنجرهForm Layout قرار دارد. پنجرهProject شامل نام تمام اجزای پروژه مانند فرمها، ماژولها(Moduls)،Activex ها و ... می باشد. مثلاً اگر در پروژه ای چند فرم وجود داشته باشد و بخواهیم به فرم دیگری برویم، کافی است نام آن را در این پنجره دابل کلیک نماییم. پنجره Properties، برخی از مشخصه(Property) های مربوط به VCL ای که انتخاب شده (Select) باشد را نمایش می دهد که می توان آنها را در هنگام طراحی(Design Time) تغییر داد (سایر مشخصه ها باید در هنگام اجرا(Run Time) تنظیم شوند.) در پنجرهForm Layout نیز می توان مکان قرار گیری Form هنگام اجرای برنامه(Run Time) بر روی صفحه نمایش را تعیین کرد (همچنین این کار را توسط کدنویسی نیز می توان انجام داد و عموماً همین روش هم توصیه می شود و لذا عموماً حتی می توان این پنجره را به کل بست).
مفاهیم بنیادی
درVB، شئ (Object) های بسیاری وجود دارد مانند فرمها، دکمه ها، برچسب ها، تصاویر و ... . همانطور که می دانیم هر شئ(Object) دارای یک سری مشخصات(Properties) می باشد. به عنوان مثال اگر یک اتومبیل را به عنوان یک شئ در نظر بگیریم، این اتومبیل دارای مشخصاتی چون رنگ خاص، وزن خاص، طول و عرض و ارتفاع خاص، میزان خاص مصرف بنزین و ... می باشد که در تمایز دو اتومبیل از هم، همین مشخصات هستند که به ما کمک می کنند.
درVB نیز هر Object دارای یک تعداد مشخصه (Property) می باشد. به عنوان مثال یک دکمه(Button) دارای مشخصاتی چون عرض(Width) و ارتفاع(Height) خاص و یا یک عنوان(Caption) خاص و ... می باشد.
برخی شئ(object) ها درVB، فقط در کدنویسی قابل دسترسی هستند(مانند شئADODB که در آینده با آن آشنا خواهید شد) اما برخی دیگر علاوه بر زمان کدنویسی، در زمان طراحی (Design) نیز می توان آنها را بر روی فرمها و در جای دلخواه قرار داد و آنها را تنظیم (Set) نمود. به اشیاء نوع اخیر، کنترل (Control) گفته می شود.
کنترل ها خود دو گونه اند، برخی علاوه بر زمان طراحی (Design) در زمان اجرا (Run Time) نیز دیده می شوند، به این نوع کنترل در اصطلاح(Visual Control) VCL گفته می شود که بیشترین انواع کنترلها را در بر می گیرند (مانند دکمه ها، جدولها، برچسبها و بسیاری دیگر که در ادامه خواهند آمد) اما برخی دیگر از کنترل ها فقط در هنگام طراحی (Design) دیده می شوند و در هنگام اجرا تنها عمل خاصی انجام می دهند و خود دیده نمی شوند (مانند کنترلTimer)، به این نوع کنترلها،Non-Visual Control گفته می شود. باید توجه داشته باشیدکه کنترلهایNon-Visual، ذاتاً درRun Time دیده نمی شوند ولی ممکن است بنابر نیازی و در زمانی خاص از اجرا، خودمان برای یک یا چند VCL نیز مقدار مشخصه Visual آنها را برابرFalse قرار دهیم که مسلماً در این حالت با وجود اینکه در آن زمان، این کنترلها دیده نمی شوند ولی VCL بودن آنها تغییری نکرده است.
کنترل ها (اعم ازVCL ها و غیر آن) معمولاً دارای تعدادی Event می باشند. Event ، رویداد یا رخدادی است که توسط کاربر و معمولاً با استفاده از ماوس یا صفحه کلید برای یک کنترل خاص روی می دهد.مثلاً یک کنترل ممکن است دارای رویداد (Event) Click باشدکه این نوع رویداد زمانی که کاربر در هنگام اجرای برنامه (Run Time) بر روی آن کنترل خاص کلیک نماید رخ می دهد.برخی Event های معمول دیگر برای کنترلها عبارتند از: DoubleClick (زمانی که بر روی آن کنترل دابل کلیک شود) ، MouseMove (زمانی که نشانگر ماوس بر روی آن کنترل قرار دارد) ، KeyPress (زمانی که کلیدی از صفحه کلید زده شد) ، KeyDown (زمانی که کلیدی از صفحه کلید پایین بود) ، KeyUp (زمانی که کلید زده شده برداشته شد) ، MouseDown ، MouseUp و ... که در ادامه با آنها بیشتر آشنا خواهیم شد.
برای هر Event (رویداد) می توان یک Event Procedure داشت. Event Procedure پاسخی است که یک کنترل زمانی که یک Event رخ می دهد، از خود نشان می دهد. در واقع Event قطعه برنامه ای است که زمانی که بر روی یک کنترل، یک Event رخ می دهد، به طور اتوماتیک اجرا می شود.
کنترلها معمولاً علاوه بر یک سری مشخصات (Properties) و یک سری رویداد (Event) ، دارای تعدادی نیز متد (Method) می باشد. متدها عملیاتهای تعریف شده ای هستند که توسط آنها یک عمل خاص بر روی کنترلها انجام می شود.
توجه داریم که تفاوت متدها و Event Procedure ها در این است که متدها توسط VB ، شناخته شده اند و عملشان همیشه ثابت است، اما Event Procedure ها توسط برنامه نویس و به دلخواه او تهیه می شود، بنابراین Method های مشابه بر روی کنترلهای متفاوت، پاسخ مشابهی دارد ولی ممکن است Event های مشابه بر روی کنترلهای متفاوت با توجه به Event Procedure های مخصوص هر یک، متفاوت باشد (مثلاً رویداد Click برای یک کنترل، کاری انجام دهد و برای کنترلی دیگر، کاری دیگر).
نکته دیگری که باید به آن توجه داشت اینست که Procedure ها به طور مستقیم اجرا نمی شوند بلکه فقط زمانی که نامشان فراخوانی شود اجرا می شوند. بنابراین مثلاً در مورد Event Procedure ها باید بدانیم که با اینکه کد مربوط به آنها نوشته شده است ولی تا وقتی که آن Event خاص (که باعث فرا خوانی Event Procedure مربوط می شود) روی ندهد، این کدها اجرا نخواهند شد.
اولین پروژه و آشنایی با برنامه نویسی بوسیله VB
به عنوان اولین پروژه، قصد داریم فرمی داشته باشیم با دو دکمه Message و Exit که اگر در دکمه Message کلیک شد، پیغامی نمایش داده شود و اگر دکمه Exit کلیک شد از برنامه خارج شود(شکل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 Time)، Event 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).
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 16 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید
عنوان صفحه
فصل اول : سیستم های اطلاعاتی
فصل دوم : معرفی نرم افزارهای مورد استفاده
الف - معرفی نرم افزار Access..............................................................................24
ب – معرفی ویژوال بیسیک (VB)
فصل سوم : توضیحات پروژه
ضمیمه 1 : نحوه ساخت و اتصال دیتا بیس در ویژوال بیسیک...........84
ضمیمه 2 : نحوه ساخت گزارشگیری (DataReporter)..................91