-
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 که بنویسی هم درست میشه.
من همینطور واسه اینکه توی این تاپیک شرکت کرده باشم چیزی که بلد بودمو گفتم.
به قول معروف راهکارهای مختلف و مدل های مختلف.:چشمک:
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
تلفن زدن داخل برنامه
مواد لازم
یک عدد:command
خصوصیات-----------------
اجراCaption=
یک عدد:text
خصوصیات-----------------
خالیtext=
این کد ها را در قسمت General وارد کنید.
Private Declare Function tapiRequestMakeCall Lib "TAPI32.DLL" (ByVal Dest As String, ByVal AppName As String, ByVal CalledParty As String,ByVal Comment As String) As Long
()Private Sub Command1_Click
tapiRequestMakeCall Text1.Text, "", "", ""
End Sub
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
ساخت لينك
اگه تكراري بود ببخشيد
مواد لازم:
يك عدد lablel
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As
String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
()Private Sub Form_Load
"Label1.Caption = "www.barnamenevis.org
End Sub
()Private Sub Label1_Click
Link Label1.Caption
End Sub
Public Function Link(ByVal URL As String) As Long
Link = ShellExecute(0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus)
End Function
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
دادن تم Xp به برنامه
واسه اين كار Notepad رو باز كنين و كد زير رو توش كپي كنيد
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="
Name"
type="win32"
/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
و بجاي Name در كد بالا نام برنامه تون رو بزارين
فايل را با نام x.exe.MANIFEST ذخيره كنين x همون نام برنامه است
حالا توي VB برين و توي فرم يه ProgressBar بزارين
از برنامه يه نسخه اجرايي بگيرين
حالا كيفش رو ببرين.
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
واقعا تاپیکه خوبیه ! منم تصمیم گرفتم کمکتون کنم . موفق باشید
انتقال فایل (MOVE )
Private Sub Command1_Click()
Name "c:\a.bat" As "D:\h.bat"
End Sub
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
کادر باز کردن پوشه (Folder Browse )
در ماوژول :
Public Const BIF_RETURNONLYFSDIRS = 1
Public Const BIF_DONTGOBELOWDOMAIN = 2
Public Const MAX_PATH = 260
Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
'***
Public Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
در فرم :
Private Sub Command1_Click()
Dim lpIDList As Long
Dim sBuffer As String
Dim szTitle As String
Dim BrowseInf As BrowseInfo
szTitle = "ÌÓÊÌæí Ú˜Ó"
With BrowseInf
.hWndOwner = Me.hWnd
.lpszTitle = lstrcat(szTitle, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With
lpIDList = SHBrowseForFolder(BrowseInf)
If (lpIDList) Then
sBuffer = Space(MAX_PATH)
SHGetPathFromIDList lpIDList, sBuffer
'sBuffer value is the directory that the user choose from the dialog.
sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
Text1.Text = sBuffer
End If
End Sub
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
بازیابی سطر معینی از یک فایل
Public Function readLine(ByRef strFilePath As String, ByRef nLine _
As Integer) As String
Dim NextLine As String
Dim n As Integer
FileNum = FreeFile
Open strFilePath For Input As FileNum
Do Until EOF(FileNum)
Line Input #FileNum, NextLine
n = n + 1
If n = nLine Then readLine = NextLine
Loop
Close
End Function
Private Sub Command1_Click()
Text1.Text = readLine("d:\a.bat", 3)
End Sub
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
پنجره ی غیر قابل حرکت
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, _
ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, _
ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Const SC_MOVE = &HF010&
Private Const MF_BYCOMMAND = &H0&
Private Sub Command1_Click()
lhSysMenu = GetSystemMenu(Me.hwnd, False)
lRetVal = RemoveMenu(lhSysMenu, SC_MOVE, MF_BYCOMMAND)
End Sub
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
جستجو با کمک توابع API
'Add a module to your project (In the menu choose Project -> Add Module, Then click Open)
'Add 1 Command Button, 4 Text Boxes and 1 List Box to your Form.
'At Run-Time, Enter the path that you want to start to search from it to Text1,
'Enter the file pattern to Text2 (like *.* or *.exe), and press the button.
'List1 will be filled with all the matching files, Text3 will display the number of files found,
'And Text4 will display the total size of the files found.
'Insert this code to the module :
Private Declare Function FindFirstFile Lib "kernel32" Alias _
"FindFirstFileA" (ByVal lpFileName As String, lpFindFileData _
As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" _
(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function GetFileAttributes Lib "kernel32" Alias _
"GetFileAttributesA" (ByVal lpFileName As String) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) _
As Long
Private Const MAX_PATH = 260
Private Const MAXDWORD = &HFFFF
Private Const INVALID_HANDLE_VALUE = -1
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const FILE_ATTRIBUTE_HIDDEN = &H2
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_SYSTEM = &H4
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Private Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, _
InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function
'Insert the following code to your form:
Private Function FindFilesAPI(path As String, SearchStr As String, _
FileCount As Integer, DirCount As Integer)
Dim FileName As String
Dim DirName As String
Dim dirNames() As String
Dim nDir As Integer
Dim i As Integer
Dim hSearch As Long
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer
If Right(path, 1) <> "\" Then path = path & "\"
nDir = 0
ReDim dirNames(nDir)
Cont = True
hSearch = FindFirstFile(path & "*", WFD)
If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont
DirName = StripNulls(WFD.cFileName)
If (DirName <> ".") And (DirName <> "..") Then
If GetFileAttributes(path & DirName) And _
FILE_ATTRIBUTE_DIRECTORY Then
dirNames(nDir) = DirName
DirCount = DirCount + 1
nDir = nDir + 1
ReDim Preserve dirNames(nDir)
End If
End If
Cont = FindNextFile(hSearch, WFD)
Loop
Cont = FindClose(hSearch)
End If
hSearch = FindFirstFile(path & SearchStr, WFD)
Cont = True
If hSearch <> INVALID_HANDLE_VALUE Then
While Cont
FileName = StripNulls(WFD.cFileName)
If (FileName <> ".") And (FileName <> "..") Then
FindFilesAPI = FindFilesAPI + (WFD.nFileSizeHigh * _
MAXDWORD) + WFD.nFileSizeLow
FileCount = FileCount + 1
List1.AddItem path & FileName
End If
Cont = FindNextFile(hSearch, WFD)
Wend
Cont = FindClose(hSearch)
End If
If nDir > 0 Then
For i = 0 To nDir - 1
FindFilesAPI = FindFilesAPI + FindFilesAPI(path & dirNames(i) _
& "\", SearchStr, FileCount, DirCount)
Next i
End If
End Function
Private Sub Command1_Click()
Dim SearchPath As String, FindStr As String
Dim FileSize As Long
Dim NumFiles As Integer, NumDirs As Integer
Screen.MousePointer = vbHourglass
List1.Clear
SearchPath = Text1.Text
FindStr = Text2.Text
FileSize = FindFilesAPI(SearchPath, FindStr, NumFiles, NumDirs)
Text3.Text = NumFiles & " Files found in " & NumDirs + 1 & _
" Directories"
Text4.Text = "Size of files found under " & SearchPath & " = " & _
Format(FileSize, "#,###,###,##0") & " Bytes"
Screen.MousePointer = vbDefault
End Sub
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
ایجاد شاخه
Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal psa As Any) As Long
Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@allapi.net
'create the directory 'c:\test\dir\hello\something\apiguide\'
SHCreateDirectoryEx Me.hwnd, "c:\test\dir\hello\something\apiguide\", ByVal 0&
End Sub
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
پخش فايل صوتي
راحت ترين روش
كافيه يه Textbox بزارين و دو command Button به صورتي كه دومي كپي اولي باشه و آرايه درست بشه
اين كد ها رو تو جنرال فرمتون كپي كنين
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
Dim isPlaying As Boolean
Dim Mp3File As String
Private Sub Command1_Click(Index As Integer)
Mp3File = Chr$(34) + Trim(Text1.Text) + Chr$(34)
Select Case Index
Case 0
mciSendString "open " + Mp3File, 0&, 0&, 0&
mciSendString "play " + Mp3File, "", 0&, 0&
isPlaying = True
Case 1
mciSendString "close " + Mp3File, 0&, 0&, 0&
isPlaying = False
End Select
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Command1(0).Caption = "Start"
Command1(1).Caption = "Stop"
Command2.Caption = "Exit"
End Sub
Private Sub Form_Unload(Cancel As Integer)
If isPlaying = True Then
mciSendString "close " + Mp3File, 0&, 0&, 0&
End If
End Sub
حالا آدرس فايل صوتي رو بنويسين تو Textbox تا واستون اجرا كنه
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
با استفاده از كد زير در هر كجاي كد برنامه تون مي تونيد چك كنيد كه آيا كليد خاصي فشرده شده يا نه؟
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer 'Key press API
Private Sub t_Timer()
If GetAsyncKeyState(vbKeyUp) <> 0 Then
END
End If
END SUB
-
نقل قول: نكاتي براي برنامه نويسان Visual Basic
و مهم ترین و آخرین نکته درباره ویبی 6 :
http://msdn.microsoft.com/en-us/vbrun/ms788708.aspx
bye bye black bird
-
نقل قول: نكاتی در مورد برنامه نويسي در Visual Basic
برای اجرا نشدن 2 بار از برنامه خود (برنامه در حال اجرا باشه و کاربر برای بار دوم بخواد برنامه رو اجرا کنه) از کد زیر استفاده کنید :
Private Sub Form_Initialize()
If App.PrevInstance = True Then
lomo = MsgBox("program now underway", vbInformation, "Warnnig")
close
Unload Me
End
End If
End Sub
-
نقل قول: نكاتی در مورد برنامه نويسي در Visual Basic
مهم ترین و آخرین نکته در مورد VB6 کار نمی کنه...
فکر می کنم اینو باید چک کنید : msdn.microsoft.com/en-us/vstudio/ms788708
-
نقل قول: نكاتی در مورد برنامه نويسي در Visual Basic
نقل قول:
نوشته شده توسط
IamOverlord
سلام
صفحه بازنمیشه، یعنی خطای NotFound میدهد
-
نقل قول: نكاتی در مورد برنامه نويسي در Visual Basic
نقل قول:
نوشته شده توسط
محسن واژدی
سلام
صفحه بازنمیشه، یعنی خطای NotFound میدهد
سلام لینک سالمه ، شاید بصورت مقطعی باز نشده ، دوباره امتحان کنید.
-
نقل قول: نكاتی در مورد برنامه نويسي در Visual Basic
نقل قول:
نوشته شده توسط
محسن واژدی
سلام
صفحه بازنمیشه، یعنی خطای NotFound میدهد
سلام عليکم
لينک سالمه و باز ميشه
-
نقل قول: نكاتی در مورد برنامه نويسي در Visual Basic
نقل قول:
نوشته شده توسط
MohammadGh2011
سلام عليکم
لينک سالمه و باز ميشه
سلام علیکم
بله حق با شماست، احتمالا سال قبل مشکل از IP بنده بود چرا که در کل امکان دسترسی به سایت مایکروسافت نداشتم و خطای Not found میداد البته پس از جواب آقای ترکاشوند وقتی با f.s تست کردم صفحه مشکلی نداشت،
در حال حاضر در سال جدید خوشبختانه مشکلی از این بابت وجود ندارد
موفق باشید
-
نقل قول: نكاتی در مورد برنامه نويسي در Visual Basic
بله...
سايت هاي ديگري هم وجود دارند:www.vocation-soft.blogfa.com
-
نقل قول: نكاتی در مورد برنامه نويسي در Visual Basic
سلام
من میخوام فایلی که ایجاد می کنم که یک فایل متن هست اسم فایل برابر گزینه ای باشد که در combo انتخاب شده
چی کار باید کنم؟