صفحه 2 از 4 اولاول 1234 آخرآخر
نمایش نتایج 41 تا 80 از 135

نام تاپیک: نكاتی در مورد برنامه نويسي در Visual Basic

  1. #41

    Question فرق دستور 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

  2. #42

    Arrow تابع SndPlaySound

    تابع API:
    Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

    lpszSoundName: آدرس دقيق فايل صوتي
    uFlags: اگر با 1 مقدار دهي بشه فايل صوتي پخش ميشه.
    بايد قبل از پخش صدا يك روال (Sub) خودمون بسازيم تا زماني كه مي خواهيم فايل رو پخش كنيم آدرس رو دريافت مي كنه و بر اساس اون آدرس يا Path فايل رو پخش مي كنه.
    روال تابع:
    Private Sub PlaySound(strFileName As String)
    sndPlaySound strFileName, 1
    End Sub

    strFileName: آدرس دقيق فايل صوتي
    *************************
    برنامه رو دانلود كنيد.
    فایل های ضمیمه فایل های ضمیمه

  3. #43

    Arrow كنترل 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"

    اگر من در خط سوم نوشتم Open به اين دليل هستش كه اين ابزار هم با فايل كار مي كنه و قبلاً اشاره كردم كه براي كار با فايل بايد اول باز بشه پردازش بشه و بعد بسته بشه.

  4. #44

    Arrow جستجو بر حسب فيلدهاي مختلف

    پاسخ سوال يكي از دوستان در اين پست.
    .This Program Worked By Find Method You Can used More Way. e.c: SQL, Filter, Index
    فایل های ضمیمه فایل های ضمیمه

  5. #45

    Arrow نمايش فيلم كوتاه

    براي نمايش فيلم كوتاه با استفاده از كنترل MMC Control ، احتياج به يه PictureBox داريم. چون براي پخش فيلم كنترل MMC احتياج به يه پنجره خروجي براي نمايش فيلم داره. دليلش اينه كه مهمترين خاصيت اون يعني DeviceType با AviVideo مقدار دهي شده.
    PictureBox يه خاصيتي به اسم hWndDisplay داره. اين همون خاصيتي هستش كه در MMC هم وجود داره. وقتي ما اينها رو برابر هم قرار ميديم كنترل MMC خروجي رو درون PictureBox ميريزه و فيلم به نمايش درمياد.
    يعني :
    MMCControl.HWndDisplay = Picture1.hwnd
    فایل های ضمیمه فایل های ضمیمه

  6. #46

    Lightbulb توليد اعداد تصادفي در يك محدوده خاص

    از اين فرمول:

    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

    Area محدوده هستش.

  7. #47

    Lightbulb ريختن يك مقدار تصادفي در يك آرايه

    يك آرايه كه تعداد خونه هاش از كاربر گرفته ميشه و در يك حلقه معين شروع به گرفتن يك مقدار تصادفي مي كنه.
    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

  8. #48

    Arrow جستجوي خطي در يك ListBox

    همون طور كه مي دونيد ListBox آرايه اي از رشته هاست.
    فایل های ضمیمه فایل های ضمیمه

  9. #49

    Arrow تقويم

    انواع تقويم:
    • 2 فايل OCX
    • برنامه
    فایل های ضمیمه فایل های ضمیمه

  10. #50

    Arrow كنترل Animation

    كار با كنترل خيلي ساده Animation
    فایل های ضمیمه فایل های ضمیمه

  11. #51

    Arrow Windows Media Player

    مسير:
    Project - Component - Windows Media Player

    خيلي ساده هستش و فقط با URL كار مي كنيد.
    مي تونيد براي پخش بعضي از صدا ها براي قسمت Open URL اين كد رو در نظر بگيريد:
         If Right(URLAddress, 3) = "Suffix" Then

    URLAddress: آدرس URL هستش كه شما تايپ مي كنيد.
    Suffix: پسوند يا فيلتري هستش كه شما اعمال مي كنيد مثل MP3,Wav,...
    نكته: اگر از اين كد:
      WindowsMediaPlayer1.openPlayer CDMain.FileName

    يا
    '   WindowsMediaPlayer1.openPlayer URLAddress

    استفاده كنيد خود Media Player ويندوز باز ميشه و برنامه ديگه كارايي نداره.
    فایل های ضمیمه فایل های ضمیمه

  12. #52
    کاربر دائمی آواتار y.saied
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تبریز
    سن
    43
    پست
    299

    نقل قول: نكات برنامه نويسي 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

  13. #53

    سوال نكنيد + مطلب آموزشي مفيد قرار بدين.

    من از vb sp6 استفاده میکنم و میخوام در پروژه ام از Ado استفاده کنم برای استفاده از تکنولوژی Ado باید کدوم یکی از این گزینه های زیر رو در Refrence فعال کنم :
    اينها همشون كتابخانه هاي ADO هستش و هر كدوم رو انتخاب كنيد مي تونيد كار كنيد.
    من تويه پست اول Microsoft ActiveX Data Objects 2.0 Library رو انتخاب كردم و با اون جلو اومدم.
    *************************
    توجه: لطفاً دوستان اينجا سوال نكنن و اگر مطلب آموزشي جديدي دارن كه به درد بخوره رو حتماً پست كنن.

  14. #54

    Lightbulb فقط كاراكترهاي فارسي

    استفاده از كاراكترهاي فارسي در يك ورودي:

    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

  15. #55

    Arrow ساخت بانك اطلاعاتي با كد نويسي

    با اين برنامه ميشه بانك اطلاعاتي طراحي كرد.
    فایل های ضمیمه فایل های ضمیمه

  16. #56

    Arrow ذخيره عكس در پايگاه داده

    ذخيره عكس در پايگاه داده كه سوال خيلي از بچه هاست.
    فایل های ضمیمه فایل های ضمیمه

  17. #57

    Arrow جستجو در فايل ترتيبي

    جستجو در فايل ترتيبي كه با تابع Dir كار كردم.
    فایل های ضمیمه فایل های ضمیمه

  18. #58

    Lightbulb پيكر بندي ويژوال بيسيك - پنجره 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

    آخرین ویرایش به وسیله اوبالیت به بو : شنبه 09 شهریور 1387 در 17:24 عصر

  19. #59
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    R0)ot -> Main();
    پست
    1,158

    Lightbulb متد ShowFont از كنترل CommonDialog

    سلام نکته ای به نظرم رسید که بعضی از دوستان مشکل دارند اونم در استفاده از متد ShowFont در CommonDialog .


    خوب دوستان در استفاده از CommonDialog و استفاده از متد ShowFont حتما قبل از استفاده باید متد Flags رو باید مقدار دهی کنید .

    من در زیر سه مقدار که مقدارهای این متد هست رو با توضیح فارسی قرار دادم .

    CommonDialog1.Flags = 1 : برای نمایش فونت های صفحه نمایش به کار می رود یعنی فونت های مربوط به پرینتر نمایش داده نمی شود .

    CommonDialog1.Flags = 2 : برای نمایش فونت های پرینتر به کار می رود .

    CommonDialog1.Flags = 3 : و آخرین مقدار که 3 هست برای نمایش جفت گروه ها استفاده می شود ، یعنی هم نمایش فونت های صفحه نمایش و فونت های چاپگر .



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


    باتشکر احسان

    آخرین ویرایش به وسیله r0ot$harp : یک شنبه 24 شهریور 1387 در 17:11 عصر

  20. #60

    Lightbulb آموزش تابع Weekday

    اين تابع تعيين مي كند كه فلان روز چندمين روز هفته است.

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

    مثلاً دستور زير تعيين مي كند كه روز Monday در تاريخ 12/5/2008 برابر پنجمين روز است:
    MsgBox Weekday("12/5/2008", vbMonday)


    حال اگر ما بخواهيم ببينيم كه بر اساس تاريخ حال،شنبه چندمين روز است از كد زير استفاده مي كنيم:
     Print Weekday(Now, vbSaturday)

  21. #61
    کاربر تازه وارد آواتار MFiRE
    تاریخ عضویت
    مهر 1386
    محل زندگی
    كيانپارس
    پست
    98

    یه نکته در تعریف چند متغییر در یک خط !

    یه نکته برایه کاربرایه حرفه ای !

    هر جا که نگاه می کنم می بینم در تعریف چند متغییر در یک خط همه دارن اشتباه می کنن !!

    حتی یه بار به یه استاد ویژوال بیسیک گفتم که داره اشتباه می کنه ! و درستش اینجوره ، ولی گفت چی می گی ... میازار موری که دانه کش است ... که جان داردو ...

    خب بگذریم ! معمولا همه اینجور متغییر ها رو تعریف می کنن :

    Dim A, B, C As Integer
    ولی تعریفه متغییر به طوره صحیح به این صورته :

    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
    ... !

  22. #62
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    Tick نكاتي براي برنامه نويسان Visual Basic

    به نام خدا
    توي اين تاپيك قصد دارم نكاتي از بهترين و كاربردي ترين نكات برنامه نويسي رو براي شما بنويسم - اگر غلط املايي يا اشتباهي در كدها ديديد اون رو پاي اشتباه تايپي بنده بزاريد چون تمام نوشته هارو بايد تايپ كنم.

    ممكنه توي يك پست فقط يك جمله ببينيد اون همون نكته است مطمئن باشيد يك روزي به دردتون مي خوره
    سعي مي كنم هر روز حد اقل يك يا دو نكته رو بگم

    موفق باشيد

  23. #63
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان 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 اين آموزش در ضميمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Dr.Bronx : یک شنبه 10 آذر 1387 در 01:31 صبح

  24. #64
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان 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 اين آموزش در ضميمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Dr.Bronx : یک شنبه 10 آذر 1387 در 01:38 صبح

  25. #65
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان Visual Basic

    موس و كليد هاي فوري نيازي به فوكوس ندارند

    . . . هر جايي را كه كاربر كليك كند ماوس بدون توجه به اينكه كدام پنجره و كنترل قبل از كليك داراي فوكوس بوده است كليك ماوس را انجام مي دهد . . .

  26. #66
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان 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 اين آموزش در ضميمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Dr.Bronx : یک شنبه 10 آذر 1387 در 01:47 صبح

  27. #67

    نقل قول: نكاتي براي برنامه نويسان Visual Basic

    دوست عزیز بهتر نبود این مسائل رو در بخش نكات برنامه نويسي مطرح کنید
    https://barnamenevis.org/showthread.php?t=104724



    ASP.NET MVC / Entity Framework / Design Pattern
    XCode Objective-C IOS Developer



  28. #68
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان 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 اين آموزش در ضميمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Dr.Bronx : یک شنبه 10 آذر 1387 در 01:51 صبح

  29. #69
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان Visual Basic

    دوست عزیز بهتر نبود این مسائل رو در بخش نكات برنامه نويسي مطرح کنید
    https://barnamenevis.org/showthread.php?t=104724
    دقت كنيد اين دو تاپيك كلا نوع كاركردش جدا است
    اونجا فقط آدرس چنين تاپيك هايي قرار داده شده.
    با تشكر از شما

  30. #70
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان 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 اين آموزش در ضميمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Dr.Bronx : یک شنبه 10 آذر 1387 در 01:59 صبح

  31. #71
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان 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 اين آموزش در ضميمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Dr.Bronx : یک شنبه 10 آذر 1387 در 02:08 صبح

  32. #72

    نقل قول: نكاتي براي برنامه نويسان Visual Basic

    عالیه؛ لطفاً ادامه بدید...
    اگه همینطور تاپیک غنی تر بشه، احتمالاً جزء اعلان ها میشه!

  33. #73
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان Visual Basic

    با تشكر از جناب فاتحي و نظر عاليشون - چشم حتما اعمال مي كنم.

    عالیه؛ لطفاً ادامه بدید...
    اگه همینطور تاپیک غنی تر بشه، احتمالاً جزء اعلان ها میشه!
    متشكرم . ولي هنوز خيلي كار داره تا به اونجا برسه .

    --------
    فايلهاي PDF به پست ها ضميمه شد .
    از اين پس فايل PDF هر آموزش همراه با آن ارائه ميشود.
    آخرین ویرایش به وسیله Dr.Bronx : یک شنبه 10 آذر 1387 در 02:09 صبح

  34. #74
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان 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 اين آموزش در ضميمه
    فایل های ضمیمه فایل های ضمیمه

  35. #75
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان 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" را نشان خواهد داد.

    موفق و موید باشید ./
    آخرین ویرایش به وسیله Dr.Bronx : دوشنبه 25 آبان 1388 در 22:51 عصر دلیل: تصحیح کدها

  36. #76
    کاربر دائمی آواتار shahmahi
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    پست
    161

    نقل قول: نكاتي براي برنامه نويسان Visual Basic

    برنامه را فشردن كليد F5 اجرا و روي دكمه SHOW FORM كليك كنيد .
    دوست من امتحان کردم هیچ اتفاقی نیوفتاد

    پرو‍ژه جديدي را ايجاد نماييد . خصوصيت Picture آن را به فايل نقش بيتي ARCHES.BMP تنظيم نماييد
    این کار لازمه یا نه ؟

  37. #77

    نقل قول: نكاتي براي برنامه نويسان Visual Basic

    نقل قول نوشته شده توسط Dr.Bronx مشاهده تاپیک
    انتخاب اتوماتيك متن داخل يك Text Box هنگامي كه نقطه تمركز برنامه با زدن كليد TAB به
    فايل PDF اين آموزش در ضميمه
    این را خیلی ساده تر از این هم میشه پیاده سازی کرد.

    دار داخل رویداد Gotfocus تکست باکس بنویسم

    sendkeys "{HOME}+{END}"


  38. #78
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان Visual Basic

    نقل قول نوشته شده توسط shahmahi مشاهده تاپیک
    دوست من امتحان کردم هیچ اتفاقی نیوفتاد



    این کار لازمه یا نه ؟
    شما با اون هم امتحان کنید .
    اگر ایرادی داشت دوستان دیگه هم اعلام می کردند

    موفق باشید ./

    نقل قول نوشته شده توسط DLL_DLL مشاهده تاپیک
    این را خیلی ساده تر از این هم میشه پیاده سازی کرد.

    دار داخل رویداد Gotfocus تکست باکس بنویسم

    sendkeys "{HOME}+{END}"

    درسته . ولی اون برنامه فقط کلید Tab رو در نظر گرفته . یعنی اگر با موس وارد تکست باکس بشید هیچ اتفاقی نمی افته . اون برنامه از یک لحاظ دیگه ای نکته آموزشی داره.
    با دقت کدهاش رو مطالعه بفرمایید.

    موفق باشید./

  39. #79
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: نكاتي براي برنامه نويسان 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

    موفق و موید باشید ./

  40. #80

    نقل قول: نكاتي براي برنامه نويسان Visual Basic

    نقل قول نوشته شده توسط Dr.Bronx مشاهده تاپیک
    شما با اون هم امتحان کنید .
    اگر ایرادی داشت دوستان دیگه هم اعلام می کردند

    موفق باشید ./



    درسته . ولی اون برنامه فقط کلید Tab رو در نظر گرفته . یعنی اگر با موس وارد تکست باکس بشید هیچ اتفاقی نمی افته . اون برنامه از یک لحاظ دیگه ای نکته آموزشی داره.
    با دقت کدهاش رو مطالعه بفرمایید.

    موفق باشید./
    با کلید Tap کار میده اینی که من گفتم! واسه Mouse هم توی رویداد Click که بنویسی هم درست میشه.
    من همینطور واسه اینکه توی این تاپیک شرکت کرده باشم چیزی که بلد بودمو گفتم.
    به قول معروف راهکارهای مختلف و مدل های مختلف.

صفحه 2 از 4 اولاول 1234 آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •