النافذة العربية للبرمجة

النافذة العربية للبرمجة
 
الرئيسيةالمشاركاتمكتبة الصورس .و .جبحـثالأعضاءالمجموعاتالتسجيلدخول

شاطر | 
 

 حيل للفيجوال بيسك عملي

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
عبدالهادي الحداد
مدير الموقع
avatar

عدد الرسائل : 483
العمر : 32
الموقع : اليمن الحبيبة
العمل/الترفيه : طالب برمجة
تاريخ التسجيل : 13/06/2008

بطاقة الشخصية
المدير العام / عبدالهادي الحداد:

مُساهمةموضوع: حيل للفيجوال بيسك عملي   الأربعاء سبتمبر 17, 2008 12:36 pm

كيف تغير هيئة التاريخ القصير في نظام الويندوز.
ربما كنت تحتاج في برنامجك إلي التعامل مع التاريخ بهيئة معينة مثل "dd/MM/yyyy" وتود التأكيد على تلك الهيئة عند فتح البرنامج فهذا هو الكود الذي يؤدي ذلك.
انسخ الكود التالي إلى قسم الـ General في Module أو الـ Form.
الكود:
[/b][/right]
[size=12][color=#000080][b]Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long
Private Const LOCALE_IDATE = &H21 ' short date format ordering
Private Const LOCALE_SSHORTDATE = &H1F ' short date format string

Public Sub SetDateFormat(ByVal theFormat As String)

Dim strBuffer As String
Dim Res As Long

strBuffer = theFormat & Chr(0)
Res = SetLocaleInfo(LOCALE_IDATE, LOCALE_SSHORTDATE, strBuffer)

End Sub
[/b][/color][/size]

[right][b]
هذا مثال على استخدام تلك الدالة
الكود:
[color=#000080]Call SetDateFormat("dd/MM/yyyy")[/color]


**************************************
تغلب على قصور دالة IsDate
لو أنك حاولت اختبار التاريخ بدالة IsDate لتعرف إذا ما كان التاريخ صحيح أم لا فإنك ستفاجأ بسلوك غريب لهذة الدالة بفرض أن إعدادات الويندوز تشير إلى أن هيئة التاريخ القصير هي "dd/MM/yyyy" وكنت تختبر التاريخ "26/01/2000" مثلا سترجع لك الدالة True دلالة على أن هذا النص يمكن أن يمثل تاريخ ولو اختبرت النص "01/26/2000" ستفاجأ بنفس النتيجة حيث أن الدالة حولت النص للهيئة السليمة فبل الإختبار وبذلك كانت النتيجة خاطئة بالنسبة لنا
لذلك فقد كتبت هذه الدالة لإختبار التاريخ بشكل صحيح.
ضع الكود التالي في قسم الـ General من Module

الكود:
[/b]
[b][size=12][color=#000080]Private[/color][/size] [size=12][color=#000080]Type[/color][/size][size=12][color=#000000] SYSTEMTIME wYear [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Integer[/color][/size][/b][size=12][color=#000000]
[b]wMonth [/b][/color][/size][b][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Integer[/color][/size][/b][size=12][color=#000000]
[b]wDayOfWeek [/b][/color][/size][b][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Integer[/color][/size][/b][size=12][color=#000000]
[b]wDay [/b][/color][/size][b][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Integer[/color][/size][/b][size=12][color=#000000]
[b]wHour [/b][/color][/size][b][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Integer[/color][/size][/b][size=12][color=#000000]
[b]wMinute [/b][/color][/size][b][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Integer[/color][/size][/b][size=12][color=#000000]
[b]wSecond [/b][/color][/size][b][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Integer[/color][/size][/b][size=12][color=#000000]
[b]wMilliseconds [/b][/color][/size][b][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Integer[/color][/size][/b]
[b][size=12][color=#000080]End[/color][/size] [size=12][color=#000080]Type[/color][/size][/b]

[b][size=12][color=#000080]Private[/color][/size] [size=12][color=#000080]Declare[/color][/size] [size=12][color=#000080]Function[/color][/size][size=12][color=#000000] GetDateFormat [/color][/size][size=12][color=#000080]Lib[/color][/size][size=12][color=#000000] "kernel32" [/color][/size][size=12][color=#000080]Alias[/color][/size][/b][b][size=12][color=#000000] "GetDateFormatA" _
([/color][/size][size=12][color=#000080]ByVal[/color][/size][size=12][color=#000000] Locale [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][size=12][color=#000000], [/color][/size][size=12][color=#000080]ByVal[/color][/size][size=12][color=#000000] dwFlags [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][/b][b][size=12][color=#000000], _
lpDate [/color][/size][size=12][color=#000080]As[/color][/size][size=12][color=#000000] SYSTEMTIME, [/color][/size][size=12][color=#000080]ByVal[/color][/size][size=12][color=#000000] lpFormat [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]String[/color][/size][size=12][color=#000000], [/color][/size][size=12][color=#000080]ByVal[/color][/size][size=12][color=#000000] lpDateStr [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]String[/color][/size][size=12][color=#000000], [/color][/size][size=12][color=#000080]ByVal[/color][/size][size=12][color=#000000] cchDate [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][size=12][color=#000000]) [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][/b]
[b][size=12][color=#000080]Private[/color][/size] [size=12][color=#000080]Const[/color][/size][size=12][color=#000000] LOCALE_IDATE = &H21[/color][/size][/b]

[b][size=12][color=#000080]Private[/color][/size] [size=12][color=#000080]Sub[/color][/size][/b][b][size=12][color=#000000] Main()

[/color][/size][size=12][color=#000080]If[/color][/size][size=12][color=#000000] ValidateDate("26/01/2000") [/color][/size][size=12][color=#000080]Then[/color][/size][/b][b][size=12][color=#000000] MsgBox "هذا التاريخ صحيح & "26/01/2000", _
vbMsgBoxRight + vbMsgBoxRtlReading + vbInformation
[/color][/size][size=12][color=#000080]If[/color][/size] [size=12][color=#000080]Not[/color][/size][size=12][color=#000000] ValidateDate("01/26/2000") [/color][/size][size=12][color=#000080]Then[/color][/size][/b][b][size=12][color=#000000] MsgBox "هذا التاريخ غير صحيح " & "01/26/2000", _ vbMsgBoxRight + vbMsgBoxRtlReading + vbInformation

[/color][/size][size=12][color=#000080]End[/color][/size][/b]

[b][size=12][color=#000080]End[/color][/size] [size=12][color=#000080]Sub[/color][/size][/b]
[b]


الكود:
[color=#000080]Public[/color] [size=12][color=#000080]Function[/color][/size][size=12][color=#000000] ValidateDate(theDate [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]String[/color][/size][size=12][color=#000000]) [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Boolean[/color][/size][/b]

[b][size=12][color=#000080]Dim[/color][/size][size=12][color=#000000] cd [/color][/size][size=12][color=#000080]As[/color][/size][/b][b][size=12][color=#000000] SYSTEMTIME
[/color][/size][size=12][color=#000080]Dim[/color][/size][size=12][color=#000000] strBuffer [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]String[/color][/size][/b]
[b][size=12][color=#000080]Dim[/color][/size][size=12][color=#000000] Res [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][/b][size=12][color=#000000]

[b]cd.wDay = [/b][/color][/size][size=12][color=#000080][b]CInt[/b][/color][/size][b][size=12][color=#000000](Left(theDate, 2))
cd.wMonth = [/color][/size][size=12][color=#000080]CInt[/color][/size][/b][b][size=12][color=#000000](Mid(theDate, 4, 2))
cd.wYear = [/color][/size][size=12][color=#000080]CInt[/color][/size][/b][b][size=12][color=#000000](Right(theDate, 4))

strBuffer = Space(255)
Res = GetDateFormat(LOCALE_IDATE, 0&, cd, "dd/MM/yyyy", strBuffer, Len(strBuffer))
[/color][/size][size=12][color=#000080]If[/color][/size][size=12][color=#000000] Res > 0 [/color][/size][size=12][color=#000080]Then[/color][/size][/b][size=12][color=#000000]
[b]ValidateDate = [/b][/color][/size][size=12][color=#000080][b]True[/b][/color][/size]
[b][size=12][color=#000080]End[/color][/size] [size=12][color=#000080]If[/color][/size][/b]

[b][size=12][color=#000080]End[/color][/size] [size=12][color=#000080]Function[/color][/size]



تحريك نافذة من أى نقطة.
يمكنك تحريك نافذة من أى نقطة بهذا الكود
هذا الجزء من الكود في قسم الـ General

الكود:
[/b]
[size=12][color=#000080][b]Private X1 As Integer
Private Y1 As Integer[/b][/color][/size]
[b]



وهذه الجزء من الكود في حدث Form_MouseMove
الكود:
[/b]
[size=12][color=#000080][b]If Button = 0 Then
X1 = X
Y1 = Y
End If
If Button = 1 Then
Call Me.Move (Me.Left - (X1 - X), Me.Top - (Y1 - Y))
End If[/b][/color][/size]
[b]



كيف تشغل حافظة الشاشة؟
تري هل من الممكن تشغيل حافظة الشاشة الحالية من داخل برنامجك؟ بالطبع نعم ما عليك إلا أن تفح اـ Form وتضع عليها زر ثم تنسخ هذا الكود إلي قسم General من الـ Form .
الكود:
[/b][/right]
[b][size=12][color=#000080]Private[/color][/size] [size=12][color=#000080]Declare[/color][/size] [size=12][color=#000080]Function[/color][/size][size=12][color=#000000] SendMessage [/color][/size][size=12][color=#000080]Lib[/color][/size][size=12][color=#000000] "user32" [/color][/size][size=12][color=#000080]Alias[/color][/size][size=12][color=#000000] "SendMessageA" ([/color][/size][size=12][color=#000080]ByVal[/color][/size][size=12][color=#000000] hWnd [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][/b][b][size=12][color=#000000], _
[/color][/size][size=12][color=#000080]ByVal[/color][/size][size=12][color=#000000] wMsg [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][/b][b][size=12][color=#000000], _
[/color][/size][size=12][color=#000080]ByVal[/color][/size][size=12][color=#000000] wParam [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][/b][b][size=12][color=#000000], _
[/color][/size][size=12][color=#000080]ByVal[/color][/size][size=12][color=#000000] lParam [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][size=12][color=#000000]) [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][/b]
[b][size=12][color=#000080]Private[/color][/size] [size=12][color=#000080]Const[/color][/size][/b][b][size=12][color=#000000] WM_SYSCOMMAND = &H112&
[/color][/size][size=12][color=#000080]Private[/color][/size] [size=12][color=#000080]Const[/color][/size][/b][b][size=12][color=#000000] SC_SCREENSAVE = &HF140&

[/color][/size][size=12][color=#000080]Private[/color][/size] [size=12][color=#000080]Sub[/color][/size][/b][b][size=12][color=#000000] Command1_Click()

[/color][/size][size=12][color=#000080]Dim[/color][/size][size=12][color=#000000] Res [/color][/size][size=12][color=#000080]As[/color][/size] [size=12][color=#000080]Long[/color][/size][/b][size=12][color=#000000]
[b]Res = SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)

[/b][/color][/size][b][size=12][color=#000080]End[/color][/size] [size=12][color=#000080]Sub[/color][/size][/b]


[b][size=12].
[/size]






[right]
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://awfm.boardlog.com
 
حيل للفيجوال بيسك عملي
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
النافذة العربية للبرمجة :: قسم لغات برمجة التطبيقات :: منتدى Microsoft Visual Basic-
انتقل الى: