كيفية عمل حركة خفيفة لفورم مثل ومضة او رعشة على العلم ان حجم الفورم 590*500
وموقعها centerscreen
كيفية عمل حركة خفيفة لفورم مثل ومضة او رعشة على العلم ان حجم الفورم 590*500
وموقعها centerscreen
أضيفي أولاً هذه الدوال ..
Private Sub ShakeMe(ByVal info As ShakeInfo)
Dim startTime As Date = Now
Dim offset As Integer = -1
Dim workingLeft As Integer = info.InitialLeft
While Now.Subtract(startTime).TotalSeconds < info.ShakeTimeInSeconds
workingLeft += offset
If offset < 0 Then
If Left <= info.InitialLeft - info.MaxPixelDrift Then
offset = 1
End If
ElseIf Left >= info.InitialLeft + info.MaxPixelDrift Then
offset = -1
End If
MoveMe(workingLeft)
End While
MoveMe(info.InitialLeft)
End Sub
Private Sub MoveMe(ByVal toLeft)
If Me.InvokeRequired Then
Dim move As New MoveMeDelegate(AddressOf DoMoveMe)
Me.Invoke(move, toLeft)
Else
DoMoveMe(toLeft)
End If
End Sub
Protected Delegate Sub MoveMeDelegate(ByVal toLeft As Integer)
Protected Sub DoMoveMe(ByVal toLeft As Integer)
Left = toLeft
End Sub
Public Structure ShakeInfo
Public ShakeTimeInSeconds As Double
Public MaxPixelDrift As Integer
Public InitialLeft As Integer
End Structureثم أضيفي زر وأكتب فيه هذا الكود لليقوم بالإهتزاز ..
Dim info As New ShakeInfo
info.ShakeTimeInSeconds = 1.0
info.MaxPixelDrift = 5
info.InitialLeft = Me.Left
System.Threading.ThreadPool.QueueUserWorkItem(AddressOf ShakeMe, info)بالنسبة إلى السطر الثاني ShakeTimeInSeconds .. هذا يعني الوقت بالثواني لكي يتم هز الفورم بعدد الثواني التي إخترتيها ..
أما السطر الثالث MaxPixelDrift فهو الحد الأقصى للتحريك الفورم في كل إهتزاز .. أو بشكل مبسط قوة الإهتزاز
تحياتي :happy:
الكود لا يعمل ويظهر عندي كلمة shakeme في السطر الثالث يوجد تحتها خط
System.Threading.ThreadPool.QueueUserWorkItem(AddressOf ShakeMe, info)
ويظهر هذا ال error
Error 1 Method 'Private Sub ShakeMe(info As chat.chat_form1.ShakeInfo)' does not have the same signature as delegate 'Delegate Sub WaitCallback(state As Object)
انا استخدم 2005 vb.net
فهل يوجد اوامر من شأنها ان تعرف
غير
Imports System.Data.SqlClient
تم تعديل هذه المشاركة بواسطة زهرة الزنبق في 30 سبتمبر 2012 في 11:39
زهرة الزنبق كتب:انا استخدم 2005 vb.net
فهل يوجد اوامر من شأنها ان تعرف
غير
Imports System.Data.SqlClient
أنا لم أقم بتعريف أي شئ خارج الكود القياسي .. ولم أقم بإستيراد مكتبة خارجية ..
تحياتي :happy:
تم تعديل هذه المشاركة بواسطة bahbah في 30 سبتمبر 2012 في 11:56
لدي مشكلة في رفع الملف في الوقت الحالي
وايضا لا يمكنني قراءة الكود الخاص ببرنامجك لانه مصمم بversion غير الموجودة عندي على الجهاز فالنسخة الموجودة عندي هي
visual basic studio 2005
هي المشكلة متعلقة فقط بالامر shakeme في السطر الاخير من الكود
Dim info As New ShakeInfo info.ShakeTimeInSeconds = 1.0 info.MaxPixelDrift = 5 info.InitialLeft = Me.Left System.Threading.ThreadPool.QueueUserWorkItem(AddressOf ShakeMe, info)
فيوجد تحت الامر خط ازرق لوجود خطا
تم تعديل هذه المشاركة بواسطة زهرة الزنبق في 30 سبتمبر 2012 في 12:28
ارجو تجربة الملف المرفق وارساله لى
ولك جزيل الشكر
ارجو الافادة
لا أظن أن له علاقة بالإصدار القديم أو الجديد .. أنا أعمل على إصدار 2008 ..
ولكن تفضلي الملف المرفق بعد التعديل لقد عدلت على فورم orm1 ..
يوجد نفس الخطأ عندي في النسخة المعدلة التي ارفقتها والكود لا يعمل عند تشغيل البرنامج ولكن الfile.exe يعمل
ويوجد هذا الخطا في نافذة ال error
Error 1 Method 'Private Sub ShakeMe(info As chat.orm1.ShakeInfo)' does not have the same signature as delegate 'Delegate Sub WaitCallback(state As Object)'. C:\Users\f22\Desktop\WindowsApplication1\WindowsApplication1\orm1.vb 12 65 WindowsApplication1
تم تعديل هذه المشاركة بواسطة زهرة الزنبق في 1 أكتوبر 2012 في 10:12
زهرة الزنبق كتب:يوجد نفس الخطأ عندي في النسخة المعدلة التي ارفقتها والكود لا يعمل عند تشغيل البرنامج ولكن الfile.exe يعمل
ويوجد هذا الخطا في نافذة ال error
Error 1 Method 'Private Sub ShakeMe(info As chat.orm1.ShakeInfo)' does not have the same signature as delegate 'Delegate Sub WaitCallback(state As Object)'. C:\Users\f22\Desktop\WindowsApplication1\WindowsApplication1\orm1.vb 12 65 WindowsApplication1
إستبدلي السطر الذي باللون الأحمر بهذا السطر ..
ByVal info As ShakeInfo
تحياتي :happy:
هذا الخطأ موجود في ال error list
والخطأ الذي يوجد تحته خط أزرق في الكود هو
System.Threading.ThreadPool.QueueUserWorkItem(AddressOf ShakeMe, info)
والخط موجود تحت shakeme فماذا يمكنني ان استبدل
على العلم اني مستدعية هذه المكتبة فقط Imports System.Data.SqlClient
فهل يمكنني معرفة المكتبات المستدعاة عندك
هل يمكنك ربط جهازك بجهازي لكي أرى ما المشكلة لأنه لا يوجد لدي الإصدار 2005 .. لأرى المشكلة ..
عبر البرنامج http://www.teamviewer.com/ar/index.aspx
تحياتي :happy:
بعد التحميل أرجوا وضع الهوية وكلمة السر لكي أستطيع التواصل معك أو أرسليهم على الرسائل الخاصة ..
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…