إجمالي مرات مشاهدة الصفحة

الخميس، 21 أبريل 2016

فورم شاشة دخول جذابة لبرنامجك Splash Login UserForm

السلام عليكم ورحمة الله وبركاته

أقدم لكم بالتفصيل إنشاء فورم شاشة دخول Login UserForm ، بحيث يختفي تطبيق الإكسيل ويظهر الفورم بشكل جميل وجذاب.
 
لإدراج الفورم قم بالدخول لمحرر الأكواد عن طريق Alt + F11 من لوحة المفاتيح ثم من القائمة Insert اختر الأمر UserForm ليتم إدراج فورم باسم UserForm1

من صندوق الأدوات ToolBox (إذا لم يكن الصندوق ظاهر قم بإظهاره من قائمة View  ثم الأمر ToolBox) اختر الأداة Image لإدراج صورة على الفورم بهذا الشكل

تختار الأداة من صندوق الأدوات ثم تقوم برسمها على الفورم ، ثم من نافذة الخصائص Properties (إذا لم تكن ظاهرة يمكن إظهارها من القائمة View ثم الأمر Properties Window) اذهب للخاصية Picture لتحميل الصورة المطلوبة إلى أداة الصورة

بالنقر على الزر الذي يظهر عليه ثلاث نقاط يتم فتح صندوق تحدد من خلاله الصورة المراد إدراجها
الآن قم بإدراج ثلاثة من الليبلات Label1 و Label2 و Label3 كما هو موضح بالصورة

قم بتنسيق كل ليبل كما يحلو لك واجعل الـ Label3 فارغ بدون عنوان
قم بتغيير اسم الفورم إلى SplashForm بدلاً من الاسم الافتراضي UserForm1 كما بالصورة ، كما يمكنك تغيير عنوان الفورم من الخاصية Caption وقد جعلتها في المثال المرفق About Blog

وأخيراً هذا شكل الفورم النهائي الذي قمت بتصميمه (يمكنك تصميم الفورم بشكل أفضل ، هذا يرجع لك)

ننتقل الآن لمرحلة برمجة الفورم بعد أن انتهينا من مرحلة التصميم
قم بوضع الكود التالي في حدث الفورم ، كليك يمين على اسم الفورم SplashForm ثم اختر الأمر View Code ثم الصق الكود
Private Sub UserForm_Initialize()
    HideTitleBar Me
End Sub

Private Sub UserForm_Activate()
    With SplashForm.Label3
        Application.Wait (Now + TimeValue("00:00:01"))
            .Caption = "Loading Data..."
            SplashForm.Repaint
        Application.Wait (Now + TimeValue("00:00:01"))
            .Caption = "Opening..."
            SplashForm.Repaint
        Application.Wait (Now + TimeValue("00:00:01"))
    End With

    Unload SplashForm
End Sub

قم بوضع الكود التالي في موديول عادي ، ويقوم هذا الكود بإخفاء شريط العنوان للفورم بما في ذلك أداة إغلاق الفورم
Option Private Module

Public Const GWL_STYLE = -16
Public Const WS_CAPTION = &HC00000
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub HideTitleBar(Frm As Object)
    Dim lngWindow As Long
    Dim lFrmHdl As Long
    
    lFrmHdl = FindWindowA(vbNullString, Frm.Caption)
    lngWindow = GetWindowLong(lFrmHdl, GWL_STYLE)
    lngWindow = lngWindow And (Not WS_CAPTION)
    
    Call SetWindowLong(lFrmHdl, GWL_STYLE, lngWindow)
    Call DrawMenuBar(lFrmHdl)
End Sub

قم بوضع الكود التالي في حدث المصنف ، حيث يقوم الكود هنا بإخفاء التطبيق ثم إظهار الفورم ثم إظهار التطبيق مرة أخرى
Private Sub Workbook_Open()
    Application.ScreenUpdating = False
        Application.Visible = False
            SplashForm.Show
        Application.Visible = True
    Application.ScreenUpdating = True
End Sub

قم بوضع الكود التالي في حدث ورقة العمل (قم بإنشاء زر أمر أولاً باسم CommandButton1)
Private Sub CommandButton1_Click()
    SplashForm.Show
End Sub


تحميل الملف من هنا

إعداد / ياسر خليل أبو البراء

ليست هناك تعليقات:

إرسال تعليق