ايران ويج

نسخه‌ی کامل: غير فعال كردن تايمر
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام به همه
كسي ميدونه كه چطوري ميشه از طريق برنامه خودمون تايمر هاي يك برنامه ديگه رو غير فعال كرد؟ :arrow:
hnoktedan نوشته است:سلام به همه
كسي ميدونه كه چطوري ميشه از طريق برنامه خودمون تايمر هاي يك برنامه ديگه رو غير فعال كرد؟ :arrow:
با يه تابع API به اسم KillTimer
سلام

فكر نمي كنم بشه با KillTimer به همين سادگي Timer يك برنامه ديگر رو غير فعال كنيد::چون اين تابع نياز به Handel تايمر ايجاد شده داره كه توسط SetTimer ايجاد شده
:wink:
amirjan نوشته است:
hnoktedan نوشته است:سلام به همه
كسي ميدونه كه چطوري ميشه از طريق برنامه خودمون تايمر هاي يك برنامه ديگه رو غير فعال كرد؟ :arrow:
با يه تابع API به اسم KillTimer
سلام امير جان
براي ايجاد تايمر با API به دوتابع SETTIMER و KILLTIMER احتياج داريم درست :!:
كه فراخوني شون به اين شكل:
Private Declare Function SetTimer Lib "user32" Alias "SetTimer" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

Private Declare Function KillTimer Lib "user32" Alias "KillTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
كاري با نحوه فراخاني نداريم اگه خوب دقت بكنيد در اين دو تابع كه مكمل هم هستند در ورودي شان يك چيز مشترك وجود داره اونم ByVal nIDEvent As Long هست خوب اين ورودي يك عدد دلخواه هست كه ما در موقع فرا خواني به تابع مي ديم كه هر وقت خواستيم تايمر را عير فعال كنيم بايد همون عدد رو بديم حالا من بايد ليست اون اعدادي كه در اون برنامه در نظر گرفته شده رو پيدا كنم وتوي يك حلقه با تابع KILLTIMER اونا رو غير فعال كنم من هم همين ليست رو مي خوام
حالا به نظر من ممكنه يك جور ديگه بشه اين كار رو انجام داد
به اين كد توجه كنيد

کد:
For Each object In Form1
object.Enabled = False
Next
اين كد باعث اين ميشه كه تمام آبجكت هاي روي Form1 همگي غير فعال بشه حالا آيا مي شه اين كد رو جوري تغير داد كه به جاي آبجكت هاي Form1 بياد و آبجكت هاي يك پنجره ديگه رو غير فعال كنه :?: در ضمن اين كد تمام تايمر ها رو هم غير فعال مي كنه
پيشاپيش از راهنمايي هاتون متشكرم :wink:
mRizvandi نوشته است:سلام

فكر نمي كنم بشه با KillTimer به همين سادگي Timer يك برنامه ديگر رو غير فعال كنيد::چون اين تابع نياز به Handel تايمر ايجاد شده داره كه توسط SetTimer ايجاد شده
:wink:
دقيقا همين طور كه شما ميگيد ببينم حالا تابعي وجود نداره كه اون عدد رو بده
با سلام

کد:
void CMainFrame::OnStartTimer()
{
   m_nTimer = SetTimer(1, 2000, 0);
}

void CMainFrame::OnStopTimer()
{
   KillTimer(m_nTimer);  
}

void CMainFrame::OnTimer(UINT nIDEvent)
{
   MessageBeep(0xFFFFFFFF);  

  
   CMDIFrameWnd::OnTimer(nIDEvent);
}
amircivil نوشته است:با سلام

کد:
void CMainFrame::OnStartTimer()
{
   m_nTimer = SetTimer(1, 2000, 0);
}

void CMainFrame::OnStopTimer()
{
   KillTimer(m_nTimer);  
}

void CMainFrame::OnTimer(UINT nIDEvent)
{
   MessageBeep(0xFFFFFFFF);  

  
   CMDIFrameWnd::OnTimer(nIDEvent);
}
سلام ببخشيد من يك كد توي ويژوال مي خوام اگه همين رو به وي بي تبديل كنيد ممنون مي شم
سلام دوستان
كسي نمي تونه يك كمكي به من بكنه و جواب ما رو بده؟ :oops: