أخواني الكرام
السلام عليكم ورحمة الله وبركاتة
كل عام وانتم بخير
أقدم لكم اليوم طريقة عمل Mask بداخل InputBox عن طريق وحدة نمطية وذلك علي شكل نجوم ******* طبعا الشرح والمثال مقدم من موقع استاذنا الجليل ومشرف منتدانا السابق ابو حمود موقع ابو حمود لتعليم الأكسيس العربي على هذا الرابط - جعل الحروف في رسالة InputBox تظهر كنجوم . ( تم تعديل المشاركة بواسطة المشرفة زهره )
كما في الشكل الموضح أمامكم

أولاً نقوم بانشاء وحدة نمطية جديدة ونسميها مثلاً password
ونكتب بداخلها التعبير التالي
Declare Function SetTimer Lib "user32" (ByVal hWnd _ As Long, ByVal nIDEvent As Long, ByVal uElapse _ As Long, ByVal lpTimerFunc As Long) As Long Declare Function KillTimer Lib "user32" _ (ByVal hWnd As Long, ByVal nIDEvent As Long) _ As Long Declare Function FindWindowEx Lib "user32" _ Alias "FindWindowExA" (ByVal hWndParent As _ Long, ByVal hWndChildAfter As Long, ByVal _ lpClassName As String, ByVal lpWindowName _ As String) As Long Declare Function Sendmessagebynum _ Lib "user32" Alias "SendMessageA" (ByVal _ hWnd As Long, ByVal wMsg As Long, ByVal _ wParam As Long, ByVal lParam As Long) _ As Long Const EM_SETPASSWORDCHAR = &HCC Public str_Title$, TimerId& Sub TimerProc(ByVal hWnd As Long, ByVal uMsg As Long, _ ByVal uElapse As Long, ByVal lpTimerFunc As Long) KillTimer 0, TimerId Dim lng_Hwnd& lng_Hwnd = FindWindowEx(0, 0, "#32770", _ Trim(str_Title)) lng_Hwnd = FindWindowEx(lng_Hwnd, 0, _ "Edit", vbNullString) If lng_Hwnd Then Sendmessagebynum lng_Hwnd, EM_SETPASSWORDCHAR, 42, 0 End If End Sub
وفي حدث الضغط علي زر
اكتب هذا الامر
TimerId = SetTimer(0, 0, 1, AddressOf TimerProc)
str_Title = "شاشة كلمة المرور"
str_Prompt = "أدخل كلمة المرور"
If InputBox(str_Prompt, str_Title) = "123456" Then
DoCmd.Close
DoCmd.OpenForm "form2"
Else
MsgBox ("رقم سري خاطي برجاء اعادة المحاولة"), vbCritical, "خطأ"
End Ifوالان يمكنك الاستمتاع وتجربة هذه الطريقة لعمل باص وورد علي شكل ****** نجوم ******* ( بالمناسبة كلمة المرور هي 123456 )
****** وكل عام وانتم بخير************
******أخوكم محمد فؤاد تركي**********
مرفق مثال




