نمایش نتایج 1 تا 10 از 10

نام تاپیک: خروج از حلقه

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    44

    خروج از حلقه

    با سلام
    من دو دکمه فرمان بر روی فرم دارم
    با کلیک بر روی دکمه اول برنامه وارد یک حلقه میشود در اینجا دو سوال دارم:
    1-چگونه میتوانم با کلیک بر روی دکمه دوم از حلقه دکمه اول خارج شوم؟
    2-چگونه میتوانم حالت فوق را با زدن یک کلید کیبورد مثلا اسکیپ انجام دهم؟

    با تشکر

  2. #2
    کاربر دائمی آواتار کم حوصله
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    ایران - مشهد
    پست
    962
    خوب با توجه به اینکه یک حلقه یک سری دستورات خاص هست که تکرار می شود می توانی یک خط شرط به آن اضافه کنی که مثلا بازدن کلیدی یا فشرده شدن دکمه ای برنامه شما آن را چک کرده و از ادامه کار جلوگیری کند

    'General
    Dim Bl As Boolean

    private Sub Command2_Click
    Bl=True
    End Sub

    private Sub Command1_Click
    Bl=False
    Do While 1
    .
    .
    .
    If Bl Then Exit Do
    .
    .
    .
    Loop

    End Sub


    :mrgreen:

  3. #3
    سلام بر دوستان جرامی = گرامی

    در حلقه اگه یک DoEvents هم اضافه کنید، بد نیست.

    خسته نباشید بچه ها.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    مشهد مقدس
    پست
    416
    البته بعضی مواقع DoEvents سرعت را پایین می آورد. :wink:

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    44
    با سلام وتشکر از جواب شما
    ولی درمورد این سوال مشکل من این است که زمانی که بر روی دکمه فرمان اول کلیک می کنم و برنامه وارد حلقه مربو طه میشود
    دراین حالت فوکوس روی دکمه اول است و تا اتمام حلقه هیچ رویدادی از دکمه فرمان دوم دریافت نمی کند و من مجبورم برای اتمام برنامه
    ctrl+break را بزنم
    دوستان آیا راهی وجود دارد که من مشکلم را حل کنم؟
    با تشکر

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    همانطور که Ruhollah عزیز گفتند شما باید از DoEvents استفاده کنید (در ابتدای حلقه)
    این فرمان باعث میشه که در طی حلقه برنامه قادر به دریافت ورودی های کاربر باشه .


    Do while i < 100
    DoEvents
    'Your code goes here !
    Loop

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    44
    با سلام حضور تما م دوستان که به من کمک کردند
    آقا تابع doevents
    معجزه کرد و خیلی جالب بود حال میتوانم همینکار را با فشر دن یک کلید مثلا esc انجام دهم
    لطفا یک مثال بزنید با تشکر مجدد

  8. #8
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    44
    با سلام
    خودم راه حلش را پیدا کردم در این راه از یک تابع api استفاده کردم و به محض فشردن کلید esc از حلقه خارج می شوم اگر راه حل یا دستوری را می شناسید بگویید

    'in General
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Const KEY_ESCAPE = &H1B
    ()Private Sub Command1_Click
    "Text1.Text = "press escape to quit
    ()Do While DoEvents
    If GetAsyncKeyState(KEY_ESCAPE) Then
    "Text1.Text = "Escape pressed
    Exit Sub
    End If
    Loop
    End Sub

  9. #9
    کاربر دائمی آواتار کم حوصله
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    ایران - مشهد
    پست
    962
    :shock: :shock: :shock: :roll:

  10. #10
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    مشهد مقدس
    پست
    416
    آفرین. :lol: :lol: :lol:

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

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