-
فرق دستور Input و Line Input در فايل ترتيبي
دستور Input
دستور Input اطلاعات فيلد يك فايل رو به طور كامل مي خونه. يعني اگر ما فيلدهايي رو در يك فايل ترتيبي تعيين كرده باشيم و بهشون مقداري رو داده باشيم، تمامي مقادير اونها رو درون متغيري كه از قبل جلوي دستور Input نوشتيم به ترتيب ميريزه:
Input #FileNumber, FirstVaraible, SecondVaraible, ....
مثلاً كد زير اطلاعات فيلد FirstName ، LastName و Telephone رو از فايل Student.txt مي خونه و هر مقداري كه درونش باشه رو در متغيرهاي FName ، LName و Tel مي ريزه.:
Open "C:\Student.txt" For Input As #FileNumber
Input #FileNumber, FName, LName, Tel
Close #FileNumber
دستور Line Input
اين دستور براي خواندن يك سطر از فايل ترتيبي به كار مي ره. يعني مثلاً اگر در سطر پنجم يك فايلي نام و نام خانوادگي و شماره دانش آموزي به ترتيب نوشته بود اونها رو به صورت رشته مي خونه و درون يك متغير از نوع رشته (String) ميريزه. يعني اينجا ديگه براش فرقي نمي كنه كه چند تا فيلد يا ركورد داريم مهم اين هستش كه اطلاعات رو بخونه و در متغير اصلي قرار بده.
Line Input #FileNumber, StringVaraible
FileNumber: شماره فايل
StringVaraible: متغيري از نوع String
حالا اينجا يك بحثي مطرح ميشه: شايد من برنامه نويس مي خوام بوسيله دستور Line Input تمامي اطلاعات فايل رو بخونم در صورتي كه من اين اجازه رو ندارم! چون كه گفتيم Line Input اطلاعات يك سطر از فايل ترتيبي رو مي خونه. حالا چاره چيه؟
اين هستش كه ما در يك حلقه نامعين به همراه دستور EOF اطلاعات رو بخونيم و اطلاعات جديد رو به اطلاعات قبلي پيوند بديم يا بهم بچسبونيم.
كد زير اطلاعات فايل Help.txt رو بوسيله يه حلقه مي خونه:
FileNumber = FreeFile
Open "C:\Help.txt" For Input As #FileNumber
While Not EOF(FileNumber)
Line Input #FileNumber, strInput
strOutput = strOutput & strInput
Wend
Close #FileNumber
Print strOutput
-
1 ضمیمه
تابع SndPlaySound
تابع API:
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
lpszSoundName: آدرس دقيق فايل صوتي
uFlags: اگر با 1 مقدار دهي بشه فايل صوتي پخش ميشه.
http://www.barnamenevis.org/im...cons/icon4.gif بايد قبل از پخش صدا يك روال (Sub) خودمون بسازيم تا زماني كه مي خواهيم فايل رو پخش كنيم آدرس رو دريافت مي كنه و بر اساس اون آدرس يا Path فايل رو پخش مي كنه.
روال تابع:
Private Sub PlaySound(strFileName As String)
sndPlaySound strFileName, 1
End Sub
strFileName: آدرس دقيق فايل صوتي
*************************
http://www.barnamenevis.org/im...cons/icon3.gif برنامه رو دانلود كنيد.
-
كنترل MMC Control 6.0
مسير:
Project - Components - Windows MultiMedia Control 6.0
كنترلي هستش كه بعد از نسخه 6 ويژوال بيسيك ارائه شد و براي انجام كارهاي MultiMedia خيلي ساده و كوچيك مورد استفاده قرار ميگيره.
مهمترين خاصيتي كه داره، خاصيت DeviceType اون هستش كه با مقادير زير براي انجام كاراي MultiMedia مقدار دهي ميشه:
- WaveAudio - پخش فايل صوتي با فرمت Wave
- AviVideo - پخش فايل تصويري كوچيك با فرمت Avi
- Scanner - كار با اسكنر
- CDAudio - پخش فايل صوتي به صورت Audio از روي CD
- ....
يكي ديگه از خاصيت هاي مهمش خاصيت FileName هستش كه از نوع String هستش و آدرس دقيق فايل رو برمي گردونه.
يه خاصيت ديگه داره به اسم UpdateInterval كه مياد كنترل رو بر اساس مقداري كه بر حسب ميلي ثانيه گرفته به روز مي كنه.
يه خاصيت ديگه داره به ام Command كه ميشه به كنترل دستورات اصلي پخش در ابزارهاي MultiMedi رو داد. مثل Play,Stop,... كه به صورت زير به كار مي ره:
Objectname.Command = "Command"
ObjectName: نام كنترل هستش كه معمولاً براي راحتي MMC Control ميزارن.
Command: كلمه كليدي
"Command: اعمال اصلي در ابزارهاي ultiMedia هستش مثل:
- Play
- Eject
- Pause
- Stop
- Next
- Previous
- Close
- Open
- Seek
- ...
يه خاصيت ديگه داره به اسم Mode كه به ما ميگه الان كنترل در چه وضعيتي هستش آيا باز هستش آيا در حال پخش هستش ايا در حال Record هست و...
پخش يه فايل صوتي با فرمت Wave:
MMControl1.DeviceType = "WaveAudio"
MMControl1.FileName = "C:\Kate Ryan.Wav"
MMControl1.Command = "Open"
MMControl1.Command = "Play"
http://www.barnamenevis.org/im...cons/icon4.gif اگر من در خط سوم نوشتم Open به اين دليل هستش كه اين ابزار هم با فايل كار مي كنه و قبلاً اشاره كردم كه براي كار با فايل بايد اول باز بشه پردازش بشه و بعد بسته بشه.
-
1 ضمیمه
جستجو بر حسب فيلدهاي مختلف
http://www.barnamenevis.org/im...cons/icon3.gif پاسخ سوال يكي از دوستان در اين پست.
.This Program Worked By Find Method You Can used More Way. e.c: SQL, Filter, Index
-
1 ضمیمه
نمايش فيلم كوتاه
براي نمايش فيلم كوتاه با استفاده از كنترل MMC Control ، احتياج به يه PictureBox داريم. چون براي پخش فيلم كنترل MMC احتياج به يه پنجره خروجي براي نمايش فيلم داره. دليلش اينه كه مهمترين خاصيت اون يعني DeviceType با AviVideo مقدار دهي شده.
PictureBox يه خاصيتي به اسم hWndDisplay داره. اين همون خاصيتي هستش كه در MMC هم وجود داره. وقتي ما اينها رو برابر هم قرار ميديم كنترل MMC خروجي رو درون PictureBox ميريزه و فيلم به نمايش درمياد.
يعني :
MMCControl.HWndDisplay = Picture1.hwnd
-
توليد اعداد تصادفي در يك محدوده خاص
از اين فرمول:
Int (Rnd * (HighBound - LowerBound)) + LowerBound
LowerBound: حد پايين
HighBound: حد بالا
Dim LowerBound, HighBound, Area As Integer
LowerBound = InputBox("Enter Lower Bound:", "Lower Bound of Area")
HighBound = InputBox("Enter High Bound:", "High Bound of Area")
Area = HighBound - LowerBound
Print Int(Rnd * Area) + LowerBound
http://www.barnamenevis.org/im...cons/icon4.gif Area محدوده هستش.
-
ريختن يك مقدار تصادفي در يك آرايه
يك آرايه كه تعداد خونه هاش از كاربر گرفته ميشه و در يك حلقه معين شروع به گرفتن يك مقدار تصادفي مي كنه.
Option Explicit
Option Base 1
Dim LowerBound, HighBound, Area As Integer
Dim mArray() As Integer
Dim HomeArray As Integer
Dim Counter As Integer
Dim ArrayValue As Integer
HomeArray = InputBox("Enter Number of few Home For mArray:", "Index of Value")
ReDim mArray(HomeArray) As Integer
'Creat Random Number
LowerBound = InputBox("Enter Lower Bound:", "Lower Bound of Area")
HighBound = InputBox("Enter High Bound:", "High Bound of Area")
Area = HighBound - LowerBound
For ArrayValue = LBound(mArray) To UBound(mArray)
mArray(ArrayValue) = Int(Rnd * Area) + LowerBound
Next ArrayValue
'Print MArray
For Counter = LBound(mArray) To UBound(mArray)
Print mArray(Counter) 'Print MArray in the Form
Next Counter
-
1 ضمیمه
جستجوي خطي در يك ListBox
همون طور كه مي دونيد ListBox آرايه اي از رشته هاست.
-
3 ضمیمه
تقويم
-
1 ضمیمه
كنترل Animation
كار با كنترل خيلي ساده Animation
-
1 ضمیمه
Windows Media Player
مسير:
Project - Component - Windows Media Player
خيلي ساده هستش و فقط با URL كار مي كنيد.
http://www.barnamenevis.org/im...cons/icon3.gif مي تونيد براي پخش بعضي از صدا ها براي قسمت Open URL اين كد رو در نظر بگيريد:
If Right(URLAddress, 3) = "Suffix" Then
URLAddress: آدرس URL هستش كه شما تايپ مي كنيد.
Suffix: پسوند يا فيلتري هستش كه شما اعمال مي كنيد مثل MP3,Wav,...
http://www.barnamenevis.org/im...cons/icon4.gif نكته: اگر از اين كد:
WindowsMediaPlayer1.openPlayer CDMain.FileName
يا
' WindowsMediaPlayer1.openPlayer URLAddress
استفاده كنيد خود Media Player ويندوز باز ميشه و برنامه ديگه كارايي نداره.
-
نقل قول: نكات برنامه نويسي Visual Basic
جناب obalitjoOon ، دستت درد نکنه ........ خیلی ممنون
من از vb sp6 استفاده میکنم و میخوام در پروژه ام از Ado استفاده کنم برای استفاده از تکنولوژی Ado باید کدوم یکی از این گزینه های زیر رو در Refrence فعال کنم :
1) : Microsoft ActiveX Data Objects (Multi-dimensional) 2.8 Library
2) : Microsoft ActiveX Data Objects 2.0 Library
3) : Microsoft ActiveX Data Objects 2.1 Library
4) :Microsoft ActiveX Data Objects 2.5 Library
5) :Microsoft ActiveX Data Objects 2.6 Library
6) :Microsoft ActiveX Data Objects 2.7 Library
7) :Microsoft ActiveX Data Objects 2.8 Library
8) :Microsoft ActiveX Data Objects Recordset 2.8 Library
-
سوال نكنيد + مطلب آموزشي مفيد قرار بدين.
نقل قول:
من از vb sp6 استفاده میکنم و میخوام در پروژه ام از Ado استفاده کنم برای استفاده از تکنولوژی Ado باید کدوم یکی از این گزینه های زیر رو در Refrence فعال کنم :
اينها همشون كتابخانه هاي ADO هستش و هر كدوم رو انتخاب كنيد مي تونيد كار كنيد.
من تويه پست اول Microsoft ActiveX Data Objects 2.0 Library رو انتخاب كردم و با اون جلو اومدم.
-
فقط كاراكترهاي فارسي
استفاده از كاراكترهاي فارسي در يك ورودي:
Private Sub PassageTxt_KeyPress(KeyAscii As Integer)
If KeyAscii >= 199 And KeyAscii <= 237 Or KeyAscii = 32 Or KeyAscii = 8 Then
PassageTxt.Text = PassageTxt.Text & Chr(KeyAscii)
End If
End Sub
-
1 ضمیمه
ساخت بانك اطلاعاتي با كد نويسي
با اين برنامه ميشه بانك اطلاعاتي طراحي كرد.
-
1 ضمیمه
ذخيره عكس در پايگاه داده
ذخيره عكس در پايگاه داده كه سوال خيلي از بچه هاست.
-
1 ضمیمه
جستجو در فايل ترتيبي
جستجو در فايل ترتيبي كه با تابع Dir كار كردم.
-
پيكر بندي ويژوال بيسيك - پنجره Option
ويژوال بيسيك از جمله برنامه هايي است كه قابليت پيكر بندي بالايي براي تنظيم محيط IDE خود دارد. براي انجام و آشنـــايي با اين پيكر بندي كافيست از منوي Tools گزينه Option را كليك كنيد:
توجه: قبل از باز كردن پنجره Option حتماً بايد يك پروژه باز داشته باشيد در غير اينصورت اين پنجره غير فعال خواهد بود.
هم اكنون پنجره كوچكي كه در مقابل خود مي بينيد پنجره Option نام دارد كه در آن زبانه ها يا نشـانه هايي از قبيل Editor، Editor Format، General، Docking، Environment و Advanced وجود دارد كه در ادامه به تمام اين زبانه هاي مي پردازم.
زبانه Editor:
زبانه Editorبه شما اين امكــــان را مي دهد تا پنجره Code و Project محيط IDE خود را ساماندهي كنيد. همان طور كه مي دونيد قسمت Projectبه بررسي فرم هـا و مدول هايي كه در برنامه استفاده شده مي پردازد و اجازه سوييچ كردن يا حركت كردن بين فرم ها و مدول ها رو در اختيار شما قرار مي دهد. پنجره Code هم مكانيست كه شما در آن برنامه نويسي مي كنيد. حال وقت آن رسيده تا با اين نشانه بيشتر آشنا بشويم.
در Frame يا قسمت Code Setting شما تغييراتي در پنجره Code برنامه هــاي خود ايجاد مي كنيد. گزينه Auto Syntax Check وظيفه اش اين است كه خطاهـاي نحوي يا املايي برنامه نويس را اعلام نمايد.
نكته: خطاي نحوي خطايي است كه در اثر تايپ اشتباه نام يك شي يا متد يا خصيصه يا ... بوجود مي آيد كه در اثر عدم تمركز برنامه نويس رخ مي دهد.
اگر اين گزينه غير فعال باشد، شما اگر يك عبارت را به اشتباه تايپ كنيد تا زمان كامپـــايل هيچ پيغــامي مبني بر اشتباه بودن كد به شما داده نمي شود. پس بهتر است كه فعال باشد تا ما را از اشتباهات خود آگاه سازد. گزينه Require Varaible Declaration عبـارت "Option Explicit" را به ابتداي هر مدول يا فرم اضافه مي كند و باعث مي شود تا اعلان يا تعريف متغير ها به صورت صريح باشد. هنگامي كه اين كد به بخش General Declaration اضافه شود فقط و فقط متغيرهـايي كه به صورت صريح اعلان مي شوند اجازه فعاليت در برنامه را خواهند داشت.با يك مثال اين گزينه را براي شما باز مي كنم. شما در يك رول عبارات زير را وارد كنيد:
Firstname = "Obalit Behboo"
First Name = "Obalit Behboo"
اگر به متغيرهــا توجه كرده باشيد يك فرق كوچك وجود دارد و آن در متغير دومي است كه يك Space در نام آن وجود دارد و همان طور كه مي دانيد قوانين نــامگذاري متغيرهــا اجـازه استفاده از Space را به ما نمي دهد پس حتمـاً پيغام خطا صادر مي شود. همچنين استفاده از دو متغير همنام نيز را مجاز نمي كند. چه خوب هستش كه اين پيغام خطا همين الان به ما داده شود تا زمــــاني كه برنامه را دست مشتري داده ايم. اينجاست كه "Option Explicit" به كمك ما مي رسد. با اضافه كردن اين كد به بالاي هر مدول هر متغيري بايد به صورت صريح اعلان شود. يعني:
Option Explicit
Dim Firstname As String * 10
گزينه Auto List Member گزينه اي است كه به مــا برنامه نويسي ساده و آسـان را هديه مي دهد. حالا چــرا هديه؟؟ وقتي شما يك عبارت را در پنجره Code تايپ مي كنيد اگر يكي دو حرف از عبـارت را بنويسيد و بعد كليد هاي Ctrl + Space را با هم وارد كنيد يك پنجره كوچك كنار كد شمــا باز مي شود كه به شما ليست متدها و مشخصه هاي موجود را مي دهد و كافيست شما با انتخاب گزينه مربوطه و با زدن يك Space از تايپ زياد كد خودداري كنيد و در زمان عزيز تر از جان خود صرفه جويي كنيد. گزينه Auto Quick Info اطلاعاتي درباره تابع و پـارامترهاي مربوط به ان مي دهد. مثلاً تابع InputBox را اگر شما استفاده كنيد، در هنگام نوشتن كد برنامه يك ToolTip باز مي كد كه در قسمت اول بايد Promp يا متني كه قرار است به نمـايش دربيايد نوشته شود و در قسمت دوم بايد Title تابع مشخص گردد كه حتي به نوع پـــارامتر مربوطه نيز اشاره مي شود كه از چه نوعي است. (String ,Long,…)
گزينه Auto Data Tips مقدار موجو يك متغير را مشخص مي كند. شما اگر با كليد F8 برنامه را آغاز كنيد برنامه به صورت گام به گام در مقابل چشم شما اجرا مي شود. در اين زمان اگر كرسر ماوس خود را چند ثانيه جلوي نــام متغير نگه داريد مقدار كنوني متغير را مشخص مي كند. مثلاً مي خواهيم بدانيم متغير حلقه For ما هم اكنون در چندمين زمان تكرار خود است يا متغير بولي ما False است يا True.
گزينه Auto Indent گزينه بسيار جالبي است. هنگامي كه شما به تايپي كد مي پردازيد، كد خود را بلوك بندي (Block) مي كنيد يعني يك آرايش و نظمي به آن مي دهيد و اين كــار را با فشردن كليد TAB انجام مي دهيد. به شكل زير توجه كنيد:
همـان طور كه ميبينيد بعد از دستور IF…Then دستور Print با كمي فاصله نوشته شده. اين كار را گزينه Auto Indent انجام مي دهد و قسمت Tab Width مقدار فاصله ايجاد شده بعد از فشردن كليد TAB را ايجاد مي كند.
در Frame يا قسمت Window Setting سه گزينه وجود دارد:
گزينه Drag-and-Drop Text Editor اين امكـــان را مي دهد تا كد پنجره Codeرا به درون پنجره هاي Immediate و Watch درگ كنيد. همــان طور كه مي دانيد پنجره هــــــــاي Immediate و Watch براي Debug كردن برنامه هــــاست.
اگر گزينه Default to Full Module View را فعــال كنيد مي توانيد تمامي روال هاي موجود در مدول يـا فرم جاري خود را ببينيد. اگر غير فعال باشد چه اتفاقي مي افتد؟؟ هيچي! فقط روال مربوط به شي خود يــا تــابع خود را مي تــوانيد تمــاشــا كنيد. مثلاً اگر شمــا برروي يك Command Button كليك كنيد فقط روال مربوط به اين كنترل نمــايش داده مي شود و براي مشاهده روال هاي ديگر بايد بر روي آن شي دوبار كليك كنيد يا روي آن شي راست كليك كنيد و بعد View Code رو انتخاب كنيد.
گزينه Procedure Sparator باعث ميشه كه روال ها بــا يك خط از هم جدا بشن. اگر غير فعال باشد اين خطوط به نمايش در نخواهند آمد.
زبانه Editor Format :
اين زبانه به شما امكان پيكربندي كد برنامه در پنجره Code را فراهم ميكند.
Frame يا قسمت Code Color رنگ كد شما در زمان هاي مختلف را نشان مي دهد. مثلاً در زمـان Syntax Error text يــا وجود خطــــاي نحوي رنگ كد قرمز مي شود يــا عبــارات Comment text به رنگ سبز رنگ در مي آيند. گزينه Foreground رنگ پيش ضمينه، گزينه background رنگ پس زمينه و Indicator حــــــاشيه از سمت راست و چپ كد را مشخص مي كند. بخش Font نيز نوع فونت به همـراه انـدازه را مشخص مي كند. اين قسمت تـاثيري در برنامه شما نخواهد داشت و صرفاً بر اساس علايق شخصي برنامه نويس تنظيم مي شود.
زبانه General:
در اين بخش شما مي توانيد به خطاهايي كه در زمان كامپايل رخ مي دهد رسيدگي نماييد.
بخش Form Grid Setting باعث شبكه بندي فرم و اجــزاي آن در زمان طراحي مي شود. منظورم از شبكه بندي همون نقطه هاي ريز و سيـاهي است كه در اطراف يك كنترل در زمان طراحي به نمايش در مياد كه واحد آن بر حسب Twips است.
بخش Error Trapping تعيين مي كند تــا ويـژوال بيسيك چگونه به خطاها رسيدگي كند. گزينه Break on All Errors باعث مي شود كه به هنگــام بروز خطا پروژه يا برنامه وارد قسمت Break شود. گـزينه Break in Class Module كه به طور پيش فرض انتخاب شده پروژه را زمـاني به قسمت Break مي برد كه يك خطاي رسيدگي نشده در مدول يك كلاس رخ دهد. يعني در انتهاي كدي كه خطا در آن ايجاد شده وارد بخش Break شود. گزينه Break on Unhandled Error اگر يك خطاي رسيدگي نشده در يك مدول وجود داشته باشد عمل Break در آن خطي از كد كه باعث بوجود آمدن خطا شده صورت مي گيرد. بخش Compile نحوه كامپــايل شدن پروژه را تعيين مي كند. اگر گزينه Compile on Demand انتخاب شده باشد، وقتي شمـا كليد F5 را فشــار مي دهيد برنــامه يك بـار از ابتدا تا انتهـا كامپـايل مي شود و بعد اجرا مي شود دقياقاً مثل Pascal. اگر Background Compile انتخــاب شده بــاشد دو گزينه اي كه در پـــايين پنجره به نام هاي ToolTips و Collapse Proj.Hide Windows وجود دارند فعــال مي شوند كه بــا انتخــاب ToolTip توضيحاتي در مورد شي كه در زير فلش ماوس قرار دارد نمايش مي دهد. و گزينه دوم بــاعث Hide شدن يك پنجره به هنگــام از بين رفتن پروژه در قسمت project Explorer را مشخص مي كند. پس گزينه Background Compile زماني كاربرد دارد كه ما در حــال طراحي فرم و يا چيدن اشيا بر روي آن هستيم.
زبانه Docking:
اين زبـانه باعث مي شود تا يك پنجره بتواند خودش را به پنجرا هاي ديگر متصل نمايد. يعني پنجره هاي موجود در محيط IDE ويژوال بيسيك رو شما مي توانيد هر جا كه دوست داشته باشد انتقال بدهيد.
ليست پنجره هايي كه شما مي توانيد جابه جا كنيد در قسمت Dockable آمده است كه اسامي همه آنها براي شما آشناست.
زبانه Environment:
يك قسمت جالب و فوق العاده براي محيط IDE ويژوال بيسيك است كه به شما امكان توسعه محيط كار خود را فراهم مي نمايد.
بخشWhen Visual Basic Starts را مي توان از نـام آن حدس زد كه چه كــــار مي كند "زماني كه ويژوال بيسيك آغاز به كار مي كند" .در اين بخش شما مي توانيد انتخـــاب كنيد كه وقتي ويژوال بيسيك اجرا شد از شمـا سوال كند كه بــا چه نوع پروژه اي سروكار داريد يا خير. يعني نوع پــروژه را از شمــا سوال مي كند. مثلاً Standard EXE. (امتحان كنيد خيلي جالبه) مي توانيد تعيين كنيد نوع پروژه فعلي، پروژه اي باشد كه آخرين بار استفاده كرده ايد.
بخش When a Program تعيين مي كند كه در زمـــان اجراي پروژه (وقتي F5 را ميزنيم) آخــرين تغييرات انجـام شده برروي پروژه اعمال شود يا در تمام حالات ذخيره اي انجام نشود. بخش Templateقالبهاي از پيش آماده را در هنگـام پيكربندي را مشخص مي كند كه مي توان در قسمت Directory مسير آن را مشخص كنيد.
زبانه Advanced:
تنظيمات پيشرفته برروي پروژه ويژوال بيسيك را انجام مي دهد.
گزينه Background Project Load سرعت برگشت كنترل به هنگــــام بار شدن يا Load شدن يك پروژه است كه به صورت پيش فرض انتخاب شده.
گزينه دوم به شمــا اين امكان را مي دهد تا به هنگام تغيير در ذخيره گزينه ها يا Item هاي يك پروژه كه به صورت Shared يا مشترك هستند متوجه موضوع شويد چون اين موضوع باعث مي شود تا شما در هر پروژه كپي Item ها را ذخيره كنيد.
گزينه سوم يا SDI Development Environmet باعث ميشه تــا محيط IDE ويژوال بيسيك شما از حالت MDI خارج بشه يعني اون قسمت قهوه اي تيره رنگي كه در محيط ويژوال بيسيك وجود داره از بين بره. (تقريباً شبيه محيط Delphi ميشه. اينم امتحان كنيد جالبه).
گزينه External HTML Editor تعيين ويرايشگر HTML ويــژوال بيسيك است كه از برنــامه NotePad ويندوز براي ويرايشگر HTML خودش استفاده مي كند.
دانلود از طريق:
http://www.2shared.com/fadmin/384364...sual_Basic.rar
http://www.2shared.com/file/3843640/...ual_Basic.html
-
متد ShowFont از كنترل CommonDialog
سلام نکته ای به نظرم رسید که بعضی از دوستان مشکل دارند اونم در استفاده از متد ShowFont در CommonDialog .
خوب دوستان در استفاده از CommonDialog و استفاده از متد ShowFont حتما قبل از استفاده باید متد Flags رو باید مقدار دهی کنید .
من در زیر سه مقدار که مقدارهای این متد هست رو با توضیح فارسی قرار دادم .
CommonDialog1.Flags = 1 : برای نمایش فونت های صفحه نمایش به کار می رود یعنی فونت های مربوط به پرینتر نمایش داده نمی شود .
CommonDialog1.Flags = 2 : برای نمایش فونت های پرینتر به کار می رود .
CommonDialog1.Flags = 3 : و آخرین مقدار که 3 هست برای نمایش جفت گروه ها استفاده می شود ، یعنی هم نمایش فونت های صفحه نمایش و فونت های چاپگر .
امید وارم این نکته به درد دوستان خورده باشه .
باتشکر احسان
-
آموزش تابع Weekday
اين تابع تعيين مي كند كه فلان روز چندمين روز هفته است.
اين تابع يك تاريخ را به عنوان ورودي از كاربر دريافت مي كند و سپس با مشخص كردن اولين روز هفته به ما مي گويد كه آن روز چندمين روز هفته در آن تاريخ بوده است.
مثلاً دستور زير تعيين مي كند كه روز Monday در تاريخ 12/5/2008 برابر پنجمين روز است:
MsgBox Weekday("12/5/2008", vbMonday)
حال اگر ما بخواهيم ببينيم كه بر اساس تاريخ حال،شنبه چندمين روز است از كد زير استفاده مي كنيم:
Print Weekday(Now, vbSaturday)
-
یه نکته در تعریف چند متغییر در یک خط !
یه نکته برایه کاربرایه حرفه ای !
هر جا که نگاه می کنم می بینم در تعریف چند متغییر در یک خط همه دارن اشتباه می کنن !!
حتی یه بار به یه استاد ویژوال بیسیک گفتم که داره اشتباه می کنه ! و درستش اینجوره ، ولی گفت چی می گی ... میازار موری که دانه کش است ... که جان داردو ... :لبخند:
خب بگذریم ! معمولا همه اینجور متغییر ها رو تعریف می کنن :
ولی تعریفه متغییر به طوره صحیح به این صورته :
نقل قول:
Dim A As Integer, B As Integer, C As Integer
برای مشاهده ی صحت این موضوع از کد زیر استفاده کنید :
نقل قول:
Dim A , B , C As Integer
MsgBox TypeName(A)
MsgBox TypeName(C)
البته وقتی به یه متغییر مقداری داده بشه ، ویژوال بیسیک به صورته خودکار نوع اون رو بسته به اون مقدار تعیین می کنه ! اما ...
داشتم رویه یه پروژه کار می کردم که با فایلها سرو کار داشت . بایت به بایت رو می گرفتم و ... . دقیقا یادم نیست ولی (فکر می کنم) تویه قرار دادنه بایت ها درونه متغییرها ، پیغام خطا می داد.
اگه اشتباه نکنم خطایه زیر بود :
نقل قول:
Variable uses an Automation type not supported in Visual Basic
... !
-
نكاتي براي برنامه نويسان Visual Basic
به نام خدا
توي اين تاپيك قصد دارم نكاتي از بهترين و كاربردي ترين نكات برنامه نويسي رو براي شما بنويسم - اگر غلط املايي يا اشتباهي در كدها ديديد اون رو پاي اشتباه تايپي بنده بزاريد چون تمام نوشته هارو بايد تايپ كنم.
ممكنه توي يك پست فقط يك جمله ببينيد اون همون نكته است مطمئن باشيد يك روزي به دردتون مي خوره
سعي مي كنم هر روز حد اقل يك يا دو نكته رو بگم
موفق باشيد
-
1 ضمیمه
نقل قول: نكاتي براي برنامه نويسان Visual Basic
تبديل يك عدد به ساعت ، دقيقه و ثانيه
فرض كنيد در حال نوشتن برنامه اي هستيد كه داراي يكسري رويداد ها و اتفاقات در خصوص زمان بوده و مقدار عددي زمان را متناسب با مجموع ثانيه هايي كه آن رويداد طول مي كشد تا كارش را انجام دهد ، بدست آورده و بازيابي كنيد . همچنين قصد آنرا داريد كه مقدار ثانيه ها را به معادلش بر حسب دقيقه و ثانيه تبديل و عبارت به دست آمده را به كاربر نمايش دهشد . عملگر Mod در ويژوال بيسيك اين پردازش تبديلي را برايتان انجام مي دهد.
بكارگيري عملگر Mod براي محاسبه دوره هاي زماني سپري شده
عملگر Mod در ويژوال بيسيك ، دو عدد را به هم تقسيم مي كند اما فقط باقيمانده عمل تقسيم را بر مي گرداند . اگر بخواهيد معين كنيد كه عدد 121 ( كل ثانيه هايي كه براي يك رويداد ثبت شده است ) چند دقيقه و ثانيه مي شود ، اين عدد را بر 60 تقسيم مي كنيد (ثانيه به ازاي هر دقيقه )نتيجه تقسيم عدد 2 و باقيمانده آن نيز 1 خواهد بود . اينك اگر از عملگر Mod ، مجددا بر روي عدد اصلي استفاده كنيد ، عدد 1 را دريافت خواهيد كرد كه همان باقيمانده تقسيم فوق است . اين تبديل ،در نهايت عدد 121 را به دو دقيقه و يك ثانيه تبديل مي كند.
برنامه نمونه
اين برنامه چگونگي بكارگيري عملگر mod براي تبديل عدد متناسب با زمان به يك رشته را نشان مي دهد .
1- پروژه جديدي در ويژوال بيسيك ايجاد نماييد به طور پيش فرض Form1 ايجاد مي شود.
2- كنترلي از نوع Label به Form1 اضافه كنيد . بطور پيش فرض Lable1 ايجاد مي شود. خصوصيت Caption آن را با عبارت "Enter A Value" تنظيم نماييد.
3- سپس كنترلي از نوع Text Box در كنار Label1 اضافه كنيد . بطور پيش فرض Text1 ايجاد مي شود. خصوصيت Text آنرا نيز با Null (خالي) تنظيم نماييد.
4- كد زير را به رويداد LostFocus مربوط به Text1 اضافه نماييد
Sub Text1_Lostfocus()
Dim Isec as integer
Isec = val(text1.text)
Breaksex = Str$(Int(Isec /60 )) & "Minute" & Str$(Isec Mod 60) & " Second "
text2.text = Breaksec
end sub
5- كنترلي از نوع Label در زير Label1 به Form1 اضافه كنيد . به طور پيش فرض Label2 ايجاد مي شود خصوصيت Caption آن را با عبارت "Time Passed " تنظيم نماييد.
6- در كنار Label2 و در زير Text1 , كنترل ديگري از نوع Text box اضافه كنيد به طور پيش فرض Text2 ايجاد مي شود . خاصيت text آن را به مقدار خالي تنظيم نماييد.
8- هنگام اجراي برنامه كاربردي يك مقداد عددي در Textbox اول وارد كنيد . سپس كليد Tab را براي ريختن آن به دومين textbox فشار دهيد . برنامه عدد وارد شده را به رشته اي تبديل مي كند كه اين رشته متناسب با مقدار دقيقه و ثانيه مي باشد.
فايل PDF اين آموزش در ضميمه
-
1 ضمیمه
نقل قول: نكاتي براي برنامه نويسان Visual Basic
انتخاب اتوماتيك متن داخل يك Text Box هنگامي كه نقطه تمركز برنامه با زدن كليد TAB به اين كنترل منتقل مي شود.
اين كار با استفاده از تابغ GetKeyState امكان پذير است .
برنامه نمونه
جمله Declare زير را به قسمت معرفيهاي عمومي فرم اضافه نماييد
Public Declare Function GetKeyState Lib "user32" alias "GetKeyState" (Byval NVirtkey As Long ) As Integer
ثابت زير را نيز در قسمت معرفي هاي عمومي مربوط به Form1 وارد كنيد
Const VK_TAB = &H9
دو كنترل از نوع textbox بر روي فرم قرار دهيد . Text1 و text2 ايجاد مي شود.
كد زير را در رويداد Load مربوط به Form1 وارد نماييد.
Sun Form_load()
Text1.text = "Press Tab To Select The Text"
Text2.text = ""
Text2.Text = "This is a Paragraph that should be selected. "
end sub
كد زير را در رويداد GetFocus مربوط به text2 وارد نماييد.
Sub Text2_Getfocus()
Dim X as integer
X = GetKeyState(Vk_Tab)
If Getkeystate(VK_Tab) and -256 then
text2.setfocus
Text2.selstart = 0
Text2.SelLenght = Len(Text2.text)
end if
End sub
پس از اجراي برنامه نقطه تمركز بر روي Textbox اول است كليد TAB را فشار دهيد تا نقطه تمركز به سمت دومين TEXTBOX حر كت كند . در اين حالت متن درون TEXTBOX دوم به صورت اتوماتيك انتخاب مي شود.
فايل PDF اين آموزش در ضميمه
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
موس و كليد هاي فوري نيازي به فوكوس ندارند
. . . هر جايي را كه كاربر كليك كند ماوس بدون توجه به اينكه كدام پنجره و كنترل قبل از كليك داراي فوكوس بوده است كليك ماوس را انجام مي دهد . . .
-
1 ضمیمه
نقل قول: نكاتي براي برنامه نويسان Visual Basic
استخراح فونتهاي صفحه نمايش و چاپگر
برنامه زير سه كنترل List Box را بر روي يك فرم نمايش مي دهد كه فونتهاي چاپگر در اولي فونتهاي صفحه نمايش در دومي و فونتهاي مشترك دو ويسله در سومي ليست شده اند.
پروژه جديد را آغاز كنيد . بطور پيش فرض Form1 ايجاد مي شود.
سه كنترل از نوع List Bpx و در كنار يكديگر به Form 1 ايجاد مي شود .
براي هر سه ليست باكس خصوصيت Sorted را با True تنظيم كنيد.
كد زير را در رويداد load مربوط به Form1 وارد كنيد.
Sub Form_Load()
Dim X as integer
Dim Y As integer
For x = 0 To Screen.Fontcount -1
For Y = 0 To Printer.Fontcount - 1
if screen.fonts(x) = printer.fonts(y) then
list3.additem Printer.Fonts(y)
end if
Next Y
Next X
For X = 0 to Printer.fontcount - 1
List1.additem Printer.Fonts(X)
next x
For X = 0 To Screen.FontCount - 1
List2.additem Screen.fonts (X)
next X
end sub
فايل PDF اين آموزش در ضميمه
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
دوست عزیز بهتر نبود این مسائل رو در بخش نكات برنامه نويسي مطرح کنید
https://barnamenevis.org/showthread.php?t=104724
-
1 ضمیمه
نقل قول: نكاتي براي برنامه نويسان Visual Basic
تبديل يك سند Word به فرمت RTF
پروژها جديدي را ايجاد نماييد . به طور پيش فرض Form1 ايجاد مي شود.
كنترلي از نوع Command Button به فرم اضافه كنيد . Command1 به طور پيش فرض ايجاد مي شود.
كد زير را در رويداد Click كنترل مزبور وارد نماييد.
Private Sub Command1_Click()
dim obj as object
Set obt = CreateObject("Word.Basic")
obg.Fileopen "C:\demo.doc"
Obg.FileSaveass "c:\Demo.rtf", 6
Set Obg= Nothing
msgbox "Document Convertedto Rtf Format"
End Sub
توجه : فرض اين برنامه اين است كه شما يك سند ورد با نام demo.doc را در شاخه اصلي درايو C خود ذخيره كرده ايد .
فايل PDF اين آموزش در ضميمه
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
دقت كنيد اين دو تاپيك كلا نوع كاركردش جدا است
اونجا فقط آدرس چنين تاپيك هايي قرار داده شده.
با تشكر از شما
-
1 ضمیمه
نقل قول: نكاتي براي برنامه نويسان Visual Basic
مشخصي كردن اينكه فايلي از قبل موجود است يا نه ؟
تابع OpenFile كه از توابع API ويندوز مي باشد روش توانمند و مناسبي را براي مشخص كردن اينكه آيا نام يك فايل يا مسير موجود است يا نه ارائه مي كند.
آرگومانهاي تابع OpenFile
Ipfilename
رشته اي شامل نام ، شامل نام مسيري براي آزمايش باشد يا نباشد.
IpReOpenBuff
يك ساختار OFSTRUCT كه بعد از فراخواني شدن تابع OpenFile حاوي اطلاعاتي در مورد فايل است.
WStyle
اين آرگومان ، تركيبي از يك يا چند پرچم (Flag) بوده و نوع عملياتي كه روي فايل اجرا مي شود را مشخص مي كند.
برنامه نمونه
پروژه جديدي را ايجاد نماييد.
كد زير را به يك ماژول عمومي (Global module) در پروژه اضافه كنيد :
Public Type OFSTRUCT
cBytes as byte
fFixeddisk as byte
nErrCode as integer
Reserved1 as integer
Reserved2 as integer
szpathname (OFS_MAXPATHNAME) as byte
end type
const of_exist = &H4000
جمله Declare زير را در قسمت معرفيهاي عمومي مربوط به FORM1 اضافه نماييد :
Declare Function OpenFile Lip "Kernel32" alias "Openfile" (Byval IpFilename as string, Ip Reopenbuff as OFSTRUCT , Byval Wstyle as long ) as long
جمله DIM زير را نيز به قسمت معرفيهاي عمومي FORM1 وارد كنيد :
Dim wStyle as integer
Dim Buffer as OFSTRUCT
Dim Isthere as long
Dim TestFile As String
كد زير را در رويداد LOAD مربوط به FORM1 وارد كنيد:
Sub Form_Load()
TestFile = "C:\TestFile.dat"
Isthere = OpenFile(TestFile, Buffer , Of_EXIST)
if isthere < 0 then
GoTo Checkforerror
else
Debug.print " This File Already Exist"
End if
CheckForError:
isthere = buffer.nerrcode
if isthere = 3 then
debug.print "pathname not foung"
end if
end sub
فايل PDF اين آموزش در ضميمه
-
1 ضمیمه
نقل قول: نكاتي براي برنامه نويسان Visual Basic
پخش فايلهاي Wav در ويژوال بيسيك
اين بخش توضيح مي دهد چگونه يك فايل صوتي شكل موجي (.wav) را در ويژوال بيسيك پخش كنيد.
استفاده از تابع SndPlaySound
اين تابع API امكان پخش فايلهاي صوتي را در برنامه كاربردي فراهم مي سازد.
پارامتر هاي تابع
SND_ASYNC
تابع بعد از پخش فايل فورا باز مي گردد و فايل به صورت آسنكرون پخش مي شود.
SND_LOOP
با پارامتر SND_ASYNC استفاده مي شود . پخش فايل بصورت دوره اي تا زمان فراخواني تابع SndPlaysound با پارامتر اول برار Null پخش مي شود.
SND_MEMORY
فايل پخش شده در حافظه ذخيره شده است.
SND_NODEFAULT
اگر فايل مشخص شده پيدا نشد تابع بر مي گردد و صوت پيش فرض پخش مي شود.
SND_NOSTOP
اگر فايل شروع به پخش كرده باشد تابع بدون پخش صورت مشخص شده بر مي گردد.
SND_SYNC
تابع تا هنگامي كه پخش فايل صوتي تمام نشده بر نمي گردد.
برنامه نمونه
پروژه جديدي را ايجاد نماييد.
جملات Declare و Constant زير را به بخش معرفيهاي عمومي FORM1 اضافه كنيد:
Private Declare Function SndPlaysound Lib "Winmm.dll" alias "sndplaysoundA" (Byval Ipszsoundnamd as string , Byval uFlags as long )as long
Const SND_SYNC = &H0
Const SND_NODEFAUT = &H2
يك CommandButton به فرم خود اضافه كنيد به طور پيش فرض Command1 ايجاد ميشود .
كد زير را در رويداد Click كنترل Command1 وارد كنيد:
Private Sub Command1_Click ()
Dim X as Long
X = SndPlaySound(C:\Windows\Media\tada.wave", SND_SYNC Or SND_NODEFAULT )
END SUB
برنامه نمونه را با فشار دادن كليد F5 اجرا كنيد . با كليك روي دكمه فرمان ، فايل TADA.WAV پخش ميشود.
فايل PDF اين آموزش در ضميمه
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
عالیه؛ لطفاً ادامه بدید...
اگه همینطور تاپیک غنی تر بشه، احتمالاً جزء اعلان ها میشه!
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
با تشكر از جناب فاتحي و نظر عاليشون - چشم حتما اعمال مي كنم.
نقل قول:
عالیه؛ لطفاً ادامه بدید...
اگه همینطور تاپیک غنی تر بشه، احتمالاً جزء اعلان ها میشه!
متشكرم . ولي هنوز خيلي كار داره تا به اونجا برسه .
--------
فايلهاي PDF به پست ها ضميمه شد .
از اين پس فايل PDF هر آموزش همراه با آن ارائه ميشود.
-
1 ضمیمه
نقل قول: نكاتي براي برنامه نويسان Visual Basic
ايجاد فرم شفاف
يك فرم شفاف فرمي است كه هنگام نمايش داده شدن پنجره هاي زيري خود را نمي پوشاند . يكي از بوابع API ويندوز به نام SetWindowLog مي تواند براي تغيير دادن تنظيمات قالبي يك فرم يا پنجره مورد استفاده واقع شود.
آرگومانهاي تابع
hWnd
يك مقدار صحيح و در بردارنده دستگيره پنجره مي باشد.
nIndex
مقدار صحيحي است كه نوع اطلاعات مورد تنظيم شما را مشخص مي كند . اين مقدار به يكي از حالتهاي زير مي تواند باشد:
GWL_EXSTYLE قالب پينجره افزوده را تنظيم مي كند
GWL_STYLE قالب پنجره حاظر را تنظيم مي كند
GWL_WNDPROC آدرس كار پنجره را مشخص مي كند
dwNewLong
يك مقدار Long و حاوي بيتهاي قالبي است كه به پنجره داده مي شود
برنامه نمونه
پروژه جديدي را ايجاد نماييد . خصوصيت Picture آن را به فايل نقش بيتي ARCHES.BMP تنظيم نماييد ( اين فايل معمولا در شاخه ويندوز يافته مي شود .)
يك كنترل CommandButton بر روي فروم ايجاد نماييد . خصوصيت Caption آن را با Show Form تنظيم نماييد
كد زير را در رويداد Click دكمه وارد نماييد
Private Sub Command1_Click()
Form2.show
Emd Sub
فرم ديگري ايجاد كنيد . به طور پيش فرض FORM2 ايجاد مي شود.
جملات Declare و Constant زير را به قسمت معرفيهاي عمومي فرم اضافه نماييد:
Declare Function SetWindowLong Lin "User32" alias "SetWindowLongA" ( Byval hwnd as long, Byval nIndex as long, Byval dwNewLong as long) as long
Const WS_EX_TRANSPARENT = &H20&
Const GWL_EXSTYLE = (-20)
كد زير را در رويداد Load مربوط به FORM1 وارد كنيد:
Private Sub Form_Load()
Dim Ret As Long
Ret = SetWindowLong (Form2.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT)
End Sub
برنامه را فشردن كليد F5 اجرا و روي دكمه SHOW FORM كليك كنيد .
فايل PDF اين آموزش در ضميمه
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
تعیین این که آیا فرمی بارگذاری شده است یا نه
این برنامه نشان می دهد که چگونه از باز شدن فرمی در یک برنامه کاربردی ویژوال بیسیک مطلع شویم .
1- پروژه جدیدی را در ویژوال بیسیک آغاز کنید . بطور پیش فرض Form1 ایجاد می شود.
2- از منوی Insert گزینه Form را انتخاب کنید . Form2 بطور پیش فرض ایجاد می شود.
3- فرمی را نیز به همین طریق باز نمایید . نام پیش فرض آن Form3 خواهد بود.
4- کد زیر را در رویداد load مربوط به Form1 اضافه کنید
Private sub Form_Load()
Form2.show
End Sub
5- کنترلی از نوع Command Button به فرم اول اضافه کنید . نام پیش فرض آن Command1 خواهد شد .
6- کد زیر را در رویداد کلیک دکمه مذبور وارد نمایید:
Private Sub Command1_Click()
dim X as integer
X = IsFormLoaded(Form1)
if X Then
msgbox "Form 2 is loader
End If
X = IsFormLoaded(Form3)
if X = false then
msgbox "Form3 is not loaded"
End If
End Sub
7- تابع جدیدی به نام IsFormLoaded و به شرح زیر ایجاد نمایید:
Function IsFormLoaded(FormToCheck as form) as integer
Dim Y as integer
For Y = 0 To Forms.Count -1
If Forms(y) is FormToCheck Then
IsFormLoaded = true
Exit Function
End if
next
IsFormLoaded = False
End Function
اگر هنگام اجرا شدن برنامه روی دکمه فرمان کلیک کنید . یک پیغام به صورت بازشو روی صفحه نمایش ظاهر شده و پیغام "Form 2 is Loaded " را نشان خواهد داد. روی دکمه Ok کلیک کنید . بلافاصله پیغام دومی ظاهر و پیغام "Form3 Is not Loaded" را نشان خواهد داد.
موفق و موید باشید ./
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
نقل قول:
برنامه را فشردن كليد F5 اجرا و روي دكمه SHOW FORM كليك كنيد .
دوست من امتحان کردم هیچ اتفاقی نیوفتاد :متفکر:
نقل قول:
پروژه جديدي را ايجاد نماييد . خصوصيت Picture آن را به فايل نقش بيتي ARCHES.BMP تنظيم نماييد
این کار لازمه یا نه ؟
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
نقل قول:
نوشته شده توسط
Dr.Bronx
انتخاب اتوماتيك متن داخل يك Text Box هنگامي كه نقطه تمركز برنامه با زدن كليد TAB به
فايل PDF اين آموزش در ضميمه
این را خیلی ساده تر از این هم میشه پیاده سازی کرد.
دار داخل رویداد Gotfocus تکست باکس بنویسم
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
نقل قول:
نوشته شده توسط
shahmahi
دوست من امتحان کردم هیچ اتفاقی نیوفتاد :متفکر:
این کار لازمه یا نه ؟
شما با اون هم امتحان کنید .
اگر ایرادی داشت دوستان دیگه هم اعلام می کردند
موفق باشید ./
نقل قول:
نوشته شده توسط
DLL_DLL
این را خیلی ساده تر از این هم میشه پیاده سازی کرد.
دار داخل رویداد Gotfocus تکست باکس بنویسم
درسته . ولی اون برنامه فقط کلید Tab رو در نظر گرفته . یعنی اگر با موس وارد تکست باکس بشید هیچ اتفاقی نمی افته . اون برنامه از یک لحاظ دیگه ای نکته آموزشی داره.
با دقت کدهاش رو مطالعه بفرمایید.
موفق باشید./
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
تغییر کلید میانبر یک منو در زمان اجرا
هنگامی که از ویرایگر منو در ویژوال بیسیک استفاده می کنید می توانید یک کلید میانبر یا سریع کننده به هر کدام از آنها اختصاص دهید . این بخش نحوه تغییر دادن این کلید ها را در زمان اجرا را در یک برنامه کاربردی مورد بررسی قرار می دهد.
1- پروژه جدیدی را در ویژوال بیسیک آغاز کنید . بطور پیش فرض Form1 ایجاد می شود.
2- کد زیر را به قسمت معرفیهای عمومی فرم اضافه کنید :
Option Explicit
Dim ShortCut as String * 1
3- از منوی Tools روی گزینه Menu Editor کلیک کنید تا یک منوی ساده ایجاد شود . در محل Caoption کلمه : File& و در محل مربوط به نام mnuFile را وارد و روی Ok کلیک کنید تا یک ساختار منویی ایجاد شود . سپس به حالت طراحی ویژوال بیسیک برگردید.
4- کد زیر را در رویداد Load مربوط به Form1 وارد کنید.
Private Sub Form_Load()
Command1.Caption = "Change ShortCut"
KeyPreview = True
End Sub
5- کد زیر را هم در رویداد KeyDown فرم اضافه نمایید :
Private Sub Form_KeyDown (KeyCode As Integer , Shift As Integer)
If Shift And 2 <> 2 Then Exit Sub
If Keycode = Asc(ShortCut) Then
mnuFile_Click
End If
End Sub
6- کد زیر را در رویداد Click منوی mnuFile وارد کنید :
Private Sub mnuFile_Click()
MsgBox "Menu Was Selected"
End Sub
7- کنترلی از نوع Command Button به فرم اضافه کنید . Command1 بطور پیش فرض ایجاد می شود . خصوصیت Caption آنرا به Change Item تنظیم نمایید.
8- کد زیر را به رویداد Click این دکمه اضافه کنید :
Private Sub Command1_Click()
ShortCut = "E"
mnuFile.Caption = "Fill" & "&" & LCase$(ShortCut)
End Sub
با فشاردادن کلید F5 برنامه را اجرا کنید . به منوی بالای فرم توجه کنید . گزینه منو File"" می باشد که زیر حرف F آن خط کشیده شده است . حرف F ، کلید دستیابی به منوی مزبور می باشد . روی دکمه کلیک کنید . گزینه منوی به File تغییر داده می شود منتهی این بار زیر حرف e آن خط کشیده شده است . کلید ترکیبی Ctrl + E را روی ضفحه فشار دهید . یک کادر پیغام باز می شود که مضمون آن به این صورت است : Menu Was Selected
موفق و موید باشید ./
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
نقل قول:
نوشته شده توسط
Dr.Bronx
شما با اون هم امتحان کنید .
اگر ایرادی داشت دوستان دیگه هم اعلام می کردند
موفق باشید ./
درسته . ولی اون برنامه فقط کلید Tab رو در نظر گرفته . یعنی اگر با موس وارد تکست باکس بشید هیچ اتفاقی نمی افته . اون برنامه از یک لحاظ دیگه ای نکته آموزشی داره.
با دقت کدهاش رو مطالعه بفرمایید.
موفق باشید./
با کلید Tap کار میده اینی که من گفتم! واسه Mouse هم توی رویداد Click که بنویسی هم درست میشه.
من همینطور واسه اینکه توی این تاپیک شرکت کرده باشم چیزی که بلد بودمو گفتم.
به قول معروف راهکارهای مختلف و مدل های مختلف.:چشمک: