الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة فى تحريك عدد 2 ليبول عن طريق تايمر

مغلق
بدأه alwkeel2002 في 21 نوفمبر 2006 · 3 رد · 902 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

صممت نوذج به عدد 2 ليبول هما L1 , L2 كتجربة لان اقوم بملئ النموذج بعدة Labels و قمت بوضعهم عند نقطة معينة و قد قمت بتحديد تلك النقطة فى حدث Form Load كالتالى :

Private Sub Form_Load()
L1.Top = 328
L2.Top = 328
End Sub

كما قمت بوضع عدد 2 تايمر هما L1Timer , L2Timer و جعلت ال Interval لكل منهما هى 100 و اول تايمر يقوم بتحريك ليبول رقم واحد لنقطة معينة ثم يغلق نفسه و يقوم بفتح التايمر الثانى و يقوم التايمر الثانى بتحريك الليبول الثانى لنقطة معينة و يغلق و هو كالتالى :

Private Sub L1Timer_Timer()
L1.Top = L1.Top - 10
If L1.Top = 128 Then
L1.ForeColor = RGB(255, 0, 0)
L1Timer.Enabled = False
End If
L2Timer.Enabled = True
End Sub

Private Sub L2Timer_Timer()
L2.Top = L2.Top - 10
If L2.Top = 152 Then
L2Timer.Enabled = False
L2.ForeColor = RGB(255, 0, 0)
End If
End Sub

لكنى فوجئت بأن التايمر الاول عندما يبدأ فى العمل و يحرك الليبول الاول ، أجدأن الليبول الثانى يتحرك مع الليبول الاول و بالرغم من ان الليبول الثانى المفروض لن يتحرك قبل اكتمال مهمة التايمر الاول ، و قد قمت بوضع الاثنين معا فى تايمر واحد كتجربة كى اجد حلا و لكنى لم افلح ، فما هو السبب ا ترى ؟

و ها هو ملف مرفق به التايمرين و كل شئ و لكنى لا اعرف سبب تحرك التايمر الثانى مع الاول

و شكرا

alwkeel2002@yahoo.com

Moving_Label.zip

#2

ضع هذا الشرط في الـــ L1Timer

 
If L1.Top = 128 Then L2Timer.Enabled = True

ليصبح الكود كالتالي

 


Private Sub L1Timer_Timer()
L1.Top = L1.Top - 10
If L1.Top = 128 Then
L1.ForeColor = RGB(255, 0, 0)
L1Timer.Enabled = False
End If
If L1.Top = 128 Then L2Timer.Enabled = True
End Sub

تم تعديل هذه المشاركة بواسطة HnHn في 21 نوفمبر 2006 في 20:21

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#3

شكرا لك HnHn فقد قمت بتنفيذ ما أفدتنى به و المشكلة تم حلها و الحمد لله ز

#4

على حسب ما فهمت , تريد أنهاء عند أنتهاء الليبل من التحرك يبدأ الليبل الثاني في التحرك ويتوقف الاول عن التحرك أذا كان هذا المطلوب فهذا هو الكود :

Option Explicit

Private Sub Form_Load()
L1.Top = 328
L2.Top = 328
End Sub

Private Sub L1Timer_Timer()
L1.Top = L1.Top - 10
If L1.Top <= 128 Then
L1.ForeColor = RGB(255, 0, 0)
L1Timer.Enabled = False
L2Timer.Enabled = True
End If
End Sub

Private Sub L2Timer_Timer()
L2.Top = L2.Top - 10
If L2.Top <= 152 Then
L2Timer.Enabled = False
L2.ForeColor = RGB(255, 0, 0)
End If
End Sub

أما أذا كنت تريد الليبل يتحرك تارة ويتوقف ويبدأ الثاني في التحرك تارة ثم التوقف ثم الاول ثم الثاني .......الخ أذن الكود التالي يفي بالغرض :

Option Explicit

Private Sub Form_Load()
L1.Top = 328
L2.Top = 328
End Sub

Private Sub L1Timer_Timer()
L1.Top = L1.Top - 10
If L1.Top <= 128 Then
L1.ForeColor = RGB(255, 0, 0)
L1Timer.Enabled = False
End If
L2Timer.Enabled = True
End Sub

Private Sub L2Timer_Timer()
L2.Top = L2.Top - 10
If L2.Top <= 152 Then
L2Timer.Enabled = False
L2.ForeColor = RGB(255, 0, 0)
End If
End Sub

;)

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…